如何在Tictactoe中实现minimax

时间:2010-10-17 21:04:09

标签: algorithm minimax

我读了这个答案,它让我很困惑:TicTacToe AI Making Incorrect Decisions

有人可以帮我理解如何将其应用于Tictactoe吗?

  1. 我如何“在树上工作?”
  2. 我如何创建一个移动树?
  3. 注意:我目前有一个Board类,它存储有关游戏的状态(例如,游戏是否与当前移动一起完成?,是否有赢家?等)当前板上的每个移动都存储为1 - 9 (从行开出的左上角到右下角)。我可以轻松地复制当前的电路板状态。我可以返回“X”和“O”的当前动作列表,以及来自董事会的可用动作。

2 个答案:

答案 0 :(得分:5)

解决Tic-Tac-Toe:游戏树基础
类别:博弈论
发表于:2008年7月30日上午11:38,作者:Mark C. Chu-Carroll

alt text

图片几乎说明了一切,但这里是博客帖子的链接: http://scienceblogs.com/goodmath/2008/07/30/solving-tictactoe-game-tree-ba/

答案 1 :(得分:1)

我可以回答你的问题“2”,希望这可以帮助你找出问题“1”:

树中的每个节点表示经过一些移动后游戏的当前状态。所以树的根代表游戏的开始(即到目前为止没有玩过的棋子)。它有九个孩子(每个可能的第一个动作一个)。每个孩子又有8个孩子(每个可能的第二个孩子一个)。等等,直到你到达赢得或抽出游戏的点数。这些是叶子节点。