Правильно ли делать AI-цикл? - PullRequest
0 голосов
/ 18 декабря 2018

Я делаю ИИ для игры в угадайку, и я столкнулся с проблемой, которую не могу решить самостоятельно.Цель состоит в том, чтобы пользователь ввел число, которое ИИ должен угадать в течение разумного промежутка времени, я генерирую случайное число в диапазоне от 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: Любой полезный ИИ, создающий информацию, очень ценится :)

1 Ответ

0 голосов
/ 18 декабря 2018

Ваше случайное число в коде интервала неверно.Чтобы сгенерировать число от min до max, выполните (rand() % (max - min)) + min.

, поэтому измените AIchoice = rand() % High + Low; на AIChoice = (rand() % (High - Low)) + Low;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...