Я реализовал нечто подобное в Prolog, используя альфа-бета-обрезку. Такой подход можно легко использовать с Go , поскольку это идеальная информационная игра, в которой
- каждый возможный ход известен
- состояние игры полностью известно
Вы можете начать с Минимаксных деревьев , а затем копать глубже, какие умные подходы, такие как AB-обрезка, negmax и т. Д.
Круто то, что вы можете сначала разработать движок, который отрабатывает лучший ход, а затем попытаться найти лучшую эвристику (также позволяя вашим ИИ играть друг против друга, чтобы увидеть, какой из них умнее), который решает, насколько хорошо это движение.
Конечно, поиск хорошей эвристики - это часть реализации, в которой вам нужно изучить правила игры, и для этого нужно подумать о различных стратегиях ... так что это более сложная, но и самая смешная.