我想開發一個魯道遊戲,最多4個玩家至少玩兩個。其中一名球員將是AI。由於條件太多,我無法決定移動電腦的棋子。我正在盡我所能,但仍然在開發一種可以與人競爭的高效算法。如果有人知道任何語言實現的任何算法的答案,請讓我知道。謝謝。如何使一個有效的魯道遊戲玩AI算法
-1
A
回答
0
我認爲,在大多數電腦卡/棋盤遊戲中,爲你的AI玩家獲得一個合理的好策略要比試圖獲得一貫獲獎的頂尖算法要好。 AI玩家玩起來應該很有趣。
非常合理的做法是收集一套您的AI應遵循的經驗規則。就像'如果我在骰子上得到6,我應該在考慮任何其他動作之前移動一個棋子','如果我有機會「吃掉」另一名棋手的棋子,那麼等等。然後將這些規則從最重要性不那麼重要,並在代碼中實現它們。你可以將一組規則結合到不同的策略中,並嘗試切換它們以查看AI是好還是壞。
0
此外,如果你想你可以嘗試一般的遊戲玩AI算法,如蒙特卡羅樹搜索。基本上的想法是這樣 - 你需要模擬許多隨機遊戲從當前的行動,然後選擇這樣的行動,保證統計最好的結果。
0
從一個簡單的啓發式開始 - 每個玩家必須移動的正方形總數是多少才能讓所有的棋子回家?現在,您可以對啓發式進行一些調整 - 例如,家庭廣場中的一件作品的額外費用是多少? (提示 - 玩家獲得六分之一之前擲骰子的預期總數是多少?)。現在,您可以根據他們被擊中的可能性,進一步調整家中棋子的「預計距離」。例如,如果一個棋子在玩家下一步移動之前有1/6的機會被擊中,那麼它的啓發距離是5/6 *(當前距離)+ 1/6 *(家距)。
然後,您應該能夠選擇一種最大化您的玩家在所有對手中的優勢(啓發式差異)的舉動。
相關問題
- 1. 飛行遊戲AI算法?
- 2. 玩Go遊戲的算法?
- 3. 直升機遊戲AI算法
- 4. 使用谷歌玩遊戲服務的軌道玩家XP
- 5. 如何編程一個國際象棋遊戲的AI
- 6. AI的線路塊遊戲
- 7. 獲取所有玩這個遊戲的遊戲中心朋友
- 8. C++ Blackjack遊戲玩法
- 9. java:敵方玩家跟蹤AI的Java遊戲
- 10. 如何使用遊戲中心只與wifi玩遊戲?
- 11. 選擇下一座要排隊的遊戲 - AI遊戲編程
- 12. 如何在遊戲中轉向AI?
- 13. 有時玩遊戲作品
- 14. 2D遊戲碰撞的高效算法?
- 15. 遊戲中的玩家停止遊戲
- 16. 遊戲編程ai:縮放牆以找到玩家?
- 17. 有多少玩家使用遊戲中心或等待遊戲
- 18. AI爲多人遊戲?
- 19. 街機格鬥遊戲AI
- 20. 遊戲ai視線Python
- 21. 創建棋盤遊戲AI
- 22. 遊戲AI - 行爲樹
- 23. AI設計紙牌遊戲
- 24. 算法:從一組遊戲
- 25. NIM遊戲和使用Minimax算法的人工智能玩家 - AI讓人失去移動
- 26. OO Javascript遊戲,如何添加玩家遊戲的玩家數組?
- 27. Unity3d - 如何使另一個類別有效地屬於另一個遊戲對象的方法有效
- 28. 多人遊戲玩家2人遊戲
- 29. 在Java中玩Flash遊戲(遊戲)
- 30. 如何在玩遊戲時創建遊戲視頻?
花點時間改進語法(只需仔細檢查你發佈的內容),如果你想製作一個AI,就需要付出相當大的努力。我建議在網上搜索'AI教程'來幫助你入門。這裏沒有簡單的答案。你將不得不自己投入腿部工作。 – 2011-03-02 05:43:12