2015-05-06 73 views
0

我在科羅納sdk中連接四個遊戲,並希望在用戶選擇與電腦玩時使用極小極大來製作AI播放器。我發現minimax Minimax for Lua援助,但我堅持樹木建設。在lua中實現連接四個極大極大

我的問題是我如何讓樹通過這個算法並將值分配給樹的每個節點,因爲我猜在這種情況下,每個節點值是-1(鬆散)或+1(win)並找到目標連接四列?我在想樹會看起來像極大極小

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

MinMax並不需要實際構建一棵樹。樹只是可能移動的基本結構。實際上,每次構建樹都是非常不合適的 - 你應該隱式地遍歷可能移動的樹。本教程可能有所幫助:http://neverstopbuilding.com/minimax

+0

感謝您的快速回復@Paul,我會檢查教程。 其實我正在考慮爲通用目的構建一個MinMax實現,只需構建一個樹併爲任何需要MinMax的遊戲實現AI。我能找到這樣的曲目嗎? 感謝您的理解。 –