我想代表遊戲connect6 wiki(也許謂語石(P,X,Y),其中P是玩家,X,Y是座標)。此外,我想用任何好的啓發式方法來解決問題(使對手)。你能給我一個關於Prolog中關於遊戲AI的文章嗎?謝謝Prolog中Connect6遊戲的表示和啓發式
回答
你可能想查找http://en.wikipedia.org/wiki/Minimax遊戲樹。爲了優化搜索,您可能不想考慮所有可能的舉措。也許只是移動,與現有的作品和6個或更少的空間。您需要一個http://en.wikipedia.org/wiki/Evaluation_function。可能就像將分數分配給「我到完成一條線有多近」一樣。
構建和優化遊戲樹更像是一個機械過程。創建一個評估函數是有趣的部分,它會給你的AI對手帶來獨特的風味。
搜索谷歌爲「極小博弈樹序言」打開了一個很好的PowerPoint: http://staff.science.uva.nl/~arnoud/education/ZSB/2009/
謝謝!這篇文章非常有幫助。 – 2011-04-24 07:46:16
如果你在一個有限的板實施Connect6,那麼這個遊戲可能表現將是列表的列表變量,最初不受約束。通過將變量與原子black
或white
中的一個統一起來,你會「放置一塊石頭」。然後您可以使用var(P)
測試P
的位置是否仍爲空。這種表示的操作速度應快於stone/3
條款列表。它的工作原理是因爲在Connect6中,你永遠不能移除一塊石頭。
我假設通過啓發式您的意思是適合minimax,negamax或alpha-beta搜索的評估函數。考慮到遊戲規則,我建議對每個玩家計算長度爲5的行數並對這5個進行評分,對長度爲4的那些進行評分,等等。這給出了兩個分數S 和S 。從S 減去S 爲玩家1帶來相對優勢。然後找到一些方法將這些歸一化到[-1,1]範圍內,或者在遊戲超過無限大負無窮的情況下得分。 (如何將Prolog中的所有內容都表示爲練習題。)
var(P)是一個好點。謝謝! – 2011-04-24 07:27:15
- 1. 什麼可以用作Bubblet遊戲的啓發式遊戲?
- 2. 啓動3D遊戲開發
- 3. SWI Prolog中的Hang子手遊戲
- 4. 顯示遊戲中心啓動畫面
- 5. Prolog的填字遊戲的限制
- 6. ios基於遊戲中心的遊戲調試和開發
- 7. 在gnu上的EndView遊戲Prolog
- 8. prolog的國際象棋遊戲
- 9. 帆布遊戲開發和表現
- 10. WP8遊戲開發和C#
- 11. 遊戲遊戲和繼承
- 12. Prolog卡牌遊戲:有效套牌
- 13. 爲prolog用戶猜猜遊戲正確
- 14. Prolog遊戲編程評估板
- 15. Android中的遊戲開發
- 16. vb.Net中的遊戲開發
- 17. 開發遊戲
- 18. 開發遊戲
- 19. 發佈遊戲
- 20. 遊戲開發者的AS3 Event.ENTER_FRAME提示
- 21. 演示遊戲賽車遊戲crashs(GamerServicesNotAvailableException)
- 22. 開發Android遊戲正確的方式
- 23. 極小極大型啓發式 - 棋盤遊戲
- 24. 在iOS遊戲中啓用多人遊戲功能
- 25. 無法在python中啓動遊戲。遊戲永遠不會啓動,下面的錯誤顯示
- 26. 啓動的cocos2d遊戲最初的遊戲背景
- 27. 在Apple App Store中爲Normal和Retina顯示器發佈遊戲
- 28. 遊戲中的表格! 2.5
- 29. 發送無需使用遊戲中心的遊戲邀請
- 30. 遊戲開發中的搖擺:遊戲循環
是的。但我不想複製粘貼任何代碼。我只想找到最好的解決方案。 – 2011-04-24 07:18:35