如何制作一个自我完善的Tic Tac Toe Mega(10x10棋盘)游戏

时间:2018-08-20 17:42:43

标签: machine-learning artificial-intelligence tic-tac-toe minimax alpha-beta-pruning

我制作了一个Tic Tac Toe(板子尺寸为10x10)的机器人。它的演奏要比普通人好。

电路板尺寸为10x10,而不是3x3。必须连续放置5个O或X,而不是3个。

因此,我使用Minimax +评估板功能+有限的可用动作使该机器人提高了性能。

让我解释一下我的代码。

首先,我单独使用Minimax算法,但意识到了这一点。第一步之后,大约有100种可能的状态,第二步之后是100 * 99,第三步之后是100 * 99 * 98。

可能无法计算所有可能的电路板状态。

因此,我所做的就是创建了评估板功能。

我为董事会评估功能设定了一些规则,无论Bot玩了多少场游戏,它都是一样的。

但是我想做一个评估板功能,以改善自身或给我一些数据,以便我可以用来改善它。我在井字游戏中想不出任何办法,你们可以吗?

谢谢

1 个答案:

答案 0 :(得分:2)

一种执行此操作的方法是生成有关板状态的统计信息。使用有效的棋盘状态创建1:1的棋盘哈希函数,并填充所采取动作的字典。记录每个棋盘状态下每个棋局的赢/输,并根据给定选项的赢率对棋局选择施加权重。

这是内存密集型的,但是您可以使用在板上旋转和镜像不变的哈希值将其提高8倍(通常,您可以对当前状态的所有8次旋转和翻转进行哈希处理,并始终返回最小值,例如;可能会有更少的蛮力选择。)

另一个改进是,即使在保证您会赢/输的任何游戏中,都不会在前瞻窗口中记录其移动,尽管这是一个较小的百分比改进。