在lua中实现连接四的minimax

时间:2015-05-06 13:14:18

标签: algorithm lua artificial-intelligence corona minimax

我在Corona sdk制作Connect Four游戏,并希望在用户选择使用计算机时使用minimax制作AI播放器。我找到了minimax Minimax for Lua来帮助我,但我仍然坚持树木建造。

我的问题是如何使树传递此算法并将值分配给树的每个节点,因为我猜在这种情况下每个节点值为-1(松散)或+1(win)并找到目标列连接四?我认为树会看起来像minimax

local t = tree() -- tree() creates the new tree for minimax
t:addNode('A',nil,0) -- head node
t:addNode('B1','A',0)
t:addNode('B2','A',0)
t:addNode('B3','A',0)

t:addNode('C1','B1',4)
t:addNode('C2','B1',12)
t:addNode('C3','B1',7)

t:addNode('C4','B2',10)
t:addNode('C5','B2',5)
t:addNode('C6','B2',6)

t:addNode('C7','B3',1)
t:addNode('C8','B3',2)
t:addNode('C9','B3',3)

每次移动任意组合后,是否需要构建树?如何确定每次搬家的最佳得分?

我希望这些信息足以理解我的问题。感谢

1 个答案:

答案 0 :(得分:0)

MinMax并不需要实际构建树。树只是可能移动的基本结构。实际上,每次构建树都会产生相当的反作用 - 你应该隐含地遍历可能移动的树。本教程可能有所帮助:http://neverstopbuilding.com/minimax