我如何从Gomoku开始?

fir*_*Try 3 algorithm gomoku

我读到Gomoku可以使用Minimax和Alpha-Beta Pruning算法实现它.所以,我阅读了这些算法,现在了解游戏将如何解决.但是,当我坐下来编写代码时,我面临的问题是如何处理它.

如,

  • 如何设计getNextMove或Max(Move)等原型函数?
  • 如何搜索下一步行动?
  • 直到什么时候应该应用minimax算法.
  • 我知道我可以在网上找到代码,但我想自己做.

有谁能指出我正确的方向?

Yin*_*Zhu 5

教科书中提出的minimax算法通常应用于简单的游戏,例如tic-tac-tou,其中最终状态只能在最小玩家和最大玩家之间的几个转弯内到达.但是,对于Gomoku来说,不可能达到所有最终状态.为什么我们需要达到最终状态?我们需要对移动进行评估,即移动是否良好.

所以你的第一步是设计一个移动的评估函数,它告诉你如果你做一次移动你将获得多少价值.例如,你有一个3连续,沿着那一行移动来制作4将是非常有价值的.

假设您有一个非常聪明的评估函数,那么每次都可以找到最佳的移动而无需任何搜索.所以在你做任何min-max,alpha-beta之前,你可能会设计一个好的评估函数.一个很好的例子是Emacs的gomoku源代码,它有一个很好的AI播放器而不使用任何搜索.

接下来,您将转到min-max和alpha-beta.

好像我没有回答你的问题.其实我不需要.我假设你知道最小 - 最大甚至alpha-beta搜索tic-tac-tao的细节.通过设计评估功能,您将更好地理解gomoku,并为此设计搜索算法,就像您现在可以为tic-tac-tou做的那样.