我如何从Gomoku开始?

时间:2010-03-13 12:03:58

标签: algorithm gomoku

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

如同,

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

任何人都可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分: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做的那样。