我在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)
每次移动任意组合后,是否需要构建树?如何确定每次搬家的最佳得分?
我希望这些信息足以理解我的问题。感谢
答案 0 :(得分:0)
MinMax并不需要实际构建树。树只是可能移动的基本结构。实际上,每次构建树都会产生相当的反作用 - 你应该隐含地遍历可能移动的树。本教程可能有所帮助:http://neverstopbuilding.com/minimax。