2011-03-02 74 views
-1

我想開發一個魯道遊戲,最多4個玩家至少玩兩個。其中一名球員將是AI。由於條件太多,我無法決定移動電腦的棋子。我正在盡我所能,但仍然在開發一種可以與人競爭的高效算法。如果有人知道任何語言實現的任何算法的答案,請讓我知道。謝謝。如何使一個有效的魯道遊戲玩AI算法

+4

花點時間改進語法(只需仔細檢查你發佈的內容),如果你想製作一個AI,就需要付出相當大的努力。我建議在網上搜索'AI教程'來幫助你入門。這裏沒有簡單的答案。你將不得不自己投入腿部工作。 – 2011-03-02 05:43:12

回答

0

我認爲,在大多數電腦卡/棋盤遊戲中,爲你的AI玩家獲得一個合理的好策略要比試圖獲得一貫獲獎的頂尖算法要好。 AI玩家玩起來應該很有趣。

非常合理的做法是收集一套您的AI應遵循的經驗規則。就像'如果我在骰子上得到6,我應該在考慮任何其他動作之前移動一個棋子','如果我有機會「吃掉」另一名棋手的棋子,那麼等等。然後將這些規則從最重要性不那麼重要,並在代碼中實現它們。你可以將一組規則結合到不同的策略中,並嘗試切換它們以查看AI是好還是壞。

0

此外,如果你想你可以嘗試一般的遊戲玩AI算法,如蒙特卡羅樹搜索。基本上的想法是這樣 - 你需要模擬許多隨機遊戲從當前的行動,然後選擇這樣的行動,保證統計最好的結果。

0

從一個簡單的啓發式開始 - 每個玩家必須移動的正方形總數是多少才能讓所有的棋子回家?現在,您可以對啓發式進行一些調整 - 例如,家庭廣場中的一件作品的額外費用是多少? (提示 - 玩家獲得六分之一之前擲骰子的預期總數是多少?)。現在,您可以根據他們被擊中的可能性,進一步調整家中棋子的「預計距離」。例如,如果一個棋子在玩家下一步移動之前有1/6的機會被擊中,那麼它的啓發距離是5/6 *(當前距離)+ 1/6 *(家距)。

然後,您應該能夠選擇一種最大化您的玩家在所有對手中的優勢(啓發式差異)的舉動。