Как и почти в каждой настольной игре, вы должны (а) оценить, насколько хорошая позиция, и (б) найти ходы, которые приведут к положительным позициям.
Отелло немного отличается от других игр, таких как шахматы, в том, что (а) немного сложно. Вы не можете легко определить, какие позиции хороши, потому что столы могут очень быстро развернуться. Однако, если вы только начинаете, хорошая эвристика это
- Угловые поля с высокими значениями
- Сильно наказывать захват полей рядом с углами
- Оценить другие граничные плитки выше, чем оставшиеся плитки
- Постарайтесь свести к минимуму количество ходов, которые может сделать противник
Для (b) вы можете использовать стандартный алгоритм поиска дерева игр, такой как Минимакс или Альфа-бета-обрезка . Есть много разных на выбор.
Майкл Буро, который написал Logistello, одну из (ранее?) Сильнейших программ, играющих на отелло, написал несколько увлекательных статей на эту тему. Чтобы определить, насколько хорошая позиция, он сравнивает шаблоны на доске (каждый ранг, каждый файл, все шаблоны диагоналей) с шаблонами в базе данных, ранее изученной программой. Для поиска желаемых результатов он использует алгоритм поиска, который называется Multi-Prob Cut.
Ссылки, которые, вероятно, будут полезны: