Введение в оценочную функцию минимаксного алгоритма в теории игр
Предварительное условие: минимаксный алгоритм в теории игр.
Как видно из статьи выше, с каждым конечным узлом было связано значение. Мы сохранили это значение в массиве. Но в реальном мире, когда мы создаем программу для игры в крестики-нолики, шахматы, нарды и т. д., нам нужно реализовать функцию, которая вычисляет стоимость доски в зависимости от размещения фигур на доске. Эту функцию часто называют функцией оценки. Иногда ее также называют эвристической функцией.
Функция оценки уникальна для каждого типа игры. В этом посте обсуждается функция оценки для игры Крестики-нолики. Основная идея функции оценки состоит в том, чтобы дать большое значение для доски, если ход максимизатора , или низкое значение для доски, если ход минимизатора .
Для этого сценария рассмотрим X как максимизатор и O как минимизатор .
Давайте построим нашу функцию оценки:
- Если X выигрывает на доске, мы присваиваем ему положительное значение +10.
- Если O выигрывает на доске, мы присваиваем ему отрицательное значение -10.
- Если никто не выиграл или игра закончилась ничьей, мы даем значение +0.
Мы могли бы выбрать любое положительное/отрицательное значение, кроме 10. Ради простоты мы выбрали 10. Ради простоты мы будем использовать нижний регистр «x» и нижний регистр «o» для представления игроков и символ подчеркивания «_». для обозначения пустого места на доске.
Если мы представим нашу доску как матрицу двумерных символов 3×3, например char board[3][3]; затем мы должны проверить каждую строку, каждый столбец и диагонали, чтобы проверить, получил ли кто-либо из игроков 3 числа подряд.
Выход :
The value of this board is 10
Идея этой статьи состоит в том, чтобы понять, как написать простую функцию оценки для игры Крестики-нолики. В следующей статье мы увидим, как объединить эту функцию оценки с функцией минимакса. Следите за обновлениями.
Эта статья написана Акшаем Л. Арадья . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.