如何为TIC-TAC-TOE变体游戏创建评估功能

时间:2014-01-01 19:24:43

标签: artificial-intelligence minmax evaluation-function

我实际上正在开发一款棋盘游戏,它是TIC-TAC-TOE游戏的变体。游戏的具体内容如下:

1。该游戏在n x n主板上播放,n变量。

2。如果玩家成功放置第一个k对齐,k是变量,则该玩家获胜。

3. 对齐由水平,垂直或对角线中的l标记( X O )构成。 l已修复。

4. 如果n x n网格已满(没有玩家可以添加 X O < / strong>)并且没有任何玩家成功放置k路线以便绘制游戏。

我正在使用minmax alpha-beta prunning算法。这是我的第一个人工智能程序,我不知道如何创建算法使用的评估函数。我在网上看到了一些使用材料加权来评估位置的例子,但我不能在我的情况下应用它。实际上,我正在使用一个radom评估函数,它返回-100100之间的值。

    float Conf_eval(Configuration c)
       {
         return (rand()%201)-100;
       }

如何评估给定的电路板配置?

1 个答案:

答案 0 :(得分:0)

Artificial Intelligence - A Modern Approach

一书中对此进行了详尽的讨论

根据书籍系列,还有优秀的implementations可用(这是java,还有python,你可以谷歌更多)。包括tic-tac-toe(和alpha-beta修剪剂)。

如果您将min-max algorithmalpha-beta prunning一起使用,则可以使用已排序的&#34;操作&#34;列表除了你的启发式函数之外还能表现得更好(一个简单的实用程序 -function会将1分配给胜利,0分配给一个平局,-1分配给损失 - 这些都是min的叶子节点-max扩展树)。

要对您可以执行的操作进行排序,比如说,更喜欢将符号( X O )添加到明确到胜利路径的操作。这最终会导致更好的结果。