假设计算机正在玩C而对手正在玩O.机器人必须足够聪明才能在有机会时获胜。 X表示未拍摄的单元格。 还假设计算机做了第一步
例如:
Input1
CCX
XOX
OXX
Output1
CCC
XOX
OXX
我想知道的是如何解决这个问题。是否有特定的算法?如果是,请向我澄清!
答案 0 :(得分:4)
实施后,定义一个简单的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
算法背后的想法是生成所有可能的状态,假设计算机是智能的并选择最佳移动(最大化其增益)。你的行动应该最大限度地减少计算机的收益。