Я делаю ИИ для игры в угадайку, и я столкнулся с проблемой, которую не могу решить самостоятельно.Цель состоит в том, чтобы пользователь ввел число, которое ИИ должен угадать в течение разумного промежутка времени, я генерирую случайное число в диапазоне от 1 до 100 и запускаю его через цикл для регулировки ниже или выше.
void AI::AIguess(int usernum)
{
srand(time(NULL));
AIchoice = rand() % High + Low;
// "too high" or "too low" accordingly
do {
if (AIchoice == usernum)
{
cout << AIchoice << " is this correct?" << endl;
}
else if (AIchoice <= usernum)
{
cout << AIchoice << " seems a little low.." << endl;
Low = AIchoice;
AIchoice = 0;
AIchoice = rand() % High + Low;
AIguesses++;
}
else if (AIchoice >= usernum)
{
cout << AIchoice << " might have overshot a bit :/" << endl;
High = AIchoice;
AIchoice = 0;
AIchoice = rand() % High + Low;
AIguesses++;
}
} while (AIchoice != usernum);
}
Я использую предыдущий сгенерированный номер, чтобы использовать его в качестве параметров для следующего сгенерированного номера, надеюсь, получить номер пользователя.Это отскакивает между утверждениями if в порядке и корректирует максимум и минимум соответственно, но проблема, с которой я сталкиваюсь, заключается в том, что после нескольких раз прохождения цикла AIchoice начинает прибавлять после 100. Кто-нибудь сможет мне помочь?
PS: Любой полезный ИИ, создающий информацию, очень ценится :)