一个tic tac toe - 这将使一个动作给定输入

时间:2013-08-28 05:57:50

标签: algorithm artificial-intelligence tic-tac-toe

假设计算机正在玩C而对手正在玩O.机器人必须足够聪明才能在有机会时获胜。 X表示未拍摄的单元格。 还假设计算机做了第一步

例如:

Input1
CCX
XOX
OXX

Output1
CCC
XOX
OXX 

我想知道的是如何解决这个问题。是否有特定的算法?如果是,请向我澄清!

2 个答案:

答案 0 :(得分:4)

使用minimax algorithm

实施后,定义一个简单的heuristic或评估函数。它可能会是这样的:

function scoreBoard(board) {
  if(board.isWin()) {
    return 1;
  }
  else if(board.isTie()) {
    return 0;
  }
  else {
    return -1;
  }
}

答案 1 :(得分:2)

您正在寻找的是Minimax算法。 您可以在此处找到详细信息:http://en.wikipedia.org/wiki/Minimax

算法背后的想法是生成所有可能的状态,假设计算机是智能的并选择最佳移动(最大化其增益)。你的行动应该最大限度地减少计算机的收益。