Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm lua中connect-four的minimax实现_Algorithm_Lua_Artificial Intelligence_Coronasdk_Minimax - Fatal编程技术网

Algorithm lua中connect-four的minimax实现

Algorithm lua中connect-four的minimax实现,algorithm,lua,artificial-intelligence,coronasdk,minimax,Algorithm,Lua,Artificial Intelligence,Coronasdk,Minimax,我正在制作Corona sdk中的Connect Four游戏,并希望在用户选择玩电脑时使用minimax制作AI播放器。我找到了minimax来帮忙,但我被困在树上了 我的问题是如何让树通过这个算法并将值分配给树的每个节点,因为我猜在这种情况下,每个节点的值都是-1(loose)或+1(win),并找到Connect Four的目标列?我想这棵树看起来像是极小极大值 local t = tree() -- tree() creates the new tree for minimax t:ad

我正在制作Corona sdk中的Connect Four游戏,并希望在用户选择玩电脑时使用minimax制作AI播放器。我找到了minimax来帮忙,但我被困在树上了

我的问题是如何让树通过这个算法并将值分配给树的每个节点,因为我猜在这种情况下,每个节点的值都是-1(loose)或+1(win),并找到Connect Four的目标列?我想这棵树看起来像是极小极大值

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)
每次移动任意组合后,我是否需要构建一棵树?我如何确定每个动作的最佳得分


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

MinMax不需要实际构建树。树只是可能移动的基本结构。实际上,每次构建树都会产生相反的效果——您应该隐式地遍历可能移动的树。本教程可能会有所帮助:

感谢您的快速回复@Paul,我将查看教程。实际上,我在考虑为通用目的构建一个MinMax实现,只需制作一棵树,就可以为任何需要MinMax的游戏实现人工智能。我能找到这样的音轨吗?谢谢你的理解。