如何编写连续五个Tic Tac Toe游戏AI



我受到同事的挑战,创建了一个连续玩五个游戏的Tic-Tac-Toe游戏AI(而不是传统的3个)。我最初的想法是创建一个"记分牌",即游戏中的每个单元格都得到0到无穷大之间的分数。人工智能找到形状,确定哪些地方有多大价值,并为细胞打分。最终,得分最高的单元格是您的选择。

有没有更好的方法来解决这个问题?

5x5 Tic-Tac-Toe可能仍然足够小,可以直接解决,这取决于您的时间限制,如果您对板对称性很聪明的话。奇怪的是,我昨晚刚刚为这个问题写了一篇关于一般技术的描述:

如何为windows手机棋盘游戏编写简单的人工智能代码?

如果没有,那仍然是一个很好的起点。对我来说,下一件最明显的事情是改变董事会的评估函数,只在时间限制的情况下在树中进行搜索。这个想法是,作为一个人,你可能对什么是优势和劣势有一些想法。所以,作为一种猜测,我们知道连续五场胜利,所以将X胜利分配为+5,将O胜利分配为-5。获胜的一种方法是在此之前连得四个,所以如果X连得四,那可能值4,如果O连得四可能值-4。这个想法是,如果你不能一直沿着树往下搜索,你就用极小极大技术尽可能地搜索,相信你正在朝着一个强大的位置努力。

board eval函数只是一个例子。想出一个好的董事会评估函数可能很棘手,我描述的这个函数遗漏了一些明显的细节。

另一件需要尝试的事情是使用遗传算法和神经网络来进化董事会评估函数。现在的想法是将棋盘位置输入神经网络,神经网络进行棋盘评估,并让他们按照我上面描述的技术,锦标赛风格进行比赛。然后,在比赛回合结束后,(通过遗传算法)从获胜者和失败者中创建新的神经网络。董事会评估职能自然演变。

最新更新