Ваша проблема
Вы звоните rand()
только один раз в начале, как это
int card1 = rand() % 10 + 1;
int newCard = rand() % 10 +1;
Тем не менее, каждый раз, когда вам нужно новое значение, вам нужно переназначать newCard следующим образом
newCard = rand() % 10 +1;
перед повторным использованием. Вы должны вызывать его снова и снова, чтобы получить новые значения.
Подсказка
То, что это еще не было упомянуто, здесь - хороший разговор о том, почему вы должны не использовать std::rand()
. В то время как другие ответы также приведут к случайным числам, их распределение может быть отключено. C++
предоставляет лучший способ получения случайных чисел, и я предлагаю вам привыкнуть к нему как можно скорее.
std::random_device rd; //Will be used to obtain a seed for the random number engine
std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
std::uniform_int_distribution<> dis(1, 10);
int newCard = dis(mt);
Для этого вам понадобятся следующие заголовки
#include <random>
#include <iostream>
Если вам нужна еще лучшая случайность, вы можете использовать random_device
вместо генератора mt19937.
Поэтому я советую сделать это с самого начала и удалить rand()
из вашего кода.