Как написать простой AI для настольной игры Windows Phone? - PullRequest
1 голос
/ 22 февраля 2012

Примерно так:

enter image description here

Я не уверен, как кодировать это, поскольку я только кодировал неигровые приложения.Например, как вы определяете лучший ход после того, как игрок сделал свой ход?Мне не нужны идеальные ходы, просто достаточно сложных задач.

Я не знаю, нужно ли мне сканировать все возможные ходы и т. Д. В игре, как показано на рисунке, количество возможных ходовочень ограничены, верно?Таким образом, я мог вычислить их все.Но я не уверен, какой из них будет лучше и т. Д.

1 Ответ

6 голосов
/ 22 февраля 2012

В небольшой простой игре, такой как крестики-нолики, вы можете построить дерево, где:

  • каждый узел занимает позицию на доске
  • каждый листовой узел - законченная игра со счетом +1 - Х побед, -1 если О побед, 0 за ничью
  • каждый дочерний узел является результатом законного перемещения от его родителя

Затем Х ищет ход, который максимизирует минимальный результат, зная, что О будет искать (в его последующем ходу) ход, который минимизирует максимальный результат, зная, что Х будет искать (в своем следующем повороте к этому ) за ход, который будет ...

Это минимаксный алгоритм.

В Tic-Tac-Toe дерево может иметь только 9 слоев в глубину, и если вы хотите быть гладким, вы можете воспользоваться некоторыми симметриями платы и обеспечить управляемость вычислений и структур данных.

Обратите внимание, что для более сложных игр это не удастся по той или иной причине (шахматы являются детерминированными, но слишком большими, чтобы справиться с этим; нарды нуждаются в вероятностных методах и т. Д.), Но многие подходы являются вариациями на эту тему.

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