我已經用Java寫了一個蛇遊戲。我也想做的是爲它創建一個演示(所以蛇會自己演奏)。我寫了一個簡單的演示,但蛇死得很快。那麼,是否有任何算法或類似的問題?我相信這有點類似於國際象棋遊戲的問題? 我希望那隻蛇儘可能活着。謝謝。編寫蛇遊戲演示
Q
編寫蛇遊戲演示
5
A
回答
9
Google贊助的AI Challenge在2010年舉辦了「Tron」遊戲。您可能會從搜索該挑戰的解決方案中獲得一些好點子。
如果你只是想要一個很簡單的策略,使一個合理的演示,那麼你可以嘗試類似以下內容:
- 永遠不要使你崩潰,除非你有沒有其他選擇
- 一招如果您的下一步移動迫使您在兩個或多個不同的(未連接的)空間中進行選擇,請始終移動到兩個空間中較大的一個。這會阻止你的蛇太容易陷入困境。
- 如果您沿着牆壁移動,請繼續沿着牆壁98%的時間移動,並根據需要左右移動。這將幫助你的蛇看起來合理的智能化,並節省遊戲區的空間。
- 否則繼續前進90%的時間,每次隨機左右旋轉5%(這會讓你的演示更加無聊)。
除此之外,我不認爲國際象棋風格的AI方法(移動搜索樹)將工作得很好。您無法事先輕鬆搜索足夠的動作。
1
沒有爲你工作,我可以告訴你,開始接近這樣一個問題的最好方法是考慮蛇應該怎麼做才能儘可能長存。爲了保持活力,蛇應該遵循什麼'經驗法則'。對於初學者來說,蛇可能在它遇到障礙物之前轉向,並且朝向不會被裝箱的方向。因此,當蛇在它的尾部(或牆壁)的一個空間內並且朝向它與其他障礙物之間的距離最大的方向。另外,我相信蛇是一種遊戲,電腦可以完美地演奏,在演示中你可能不會那麼想,所以如果事情變得太一樣的話,你總是可以隨意拋出一些隨機的東西來增添趣味。
2
這是不是你正在尋找的答案,但我張貼,因爲我真的喜歡看你探索這個算法進一步修改,直到你發現自己有一個相當合理的AI:
最簡單的算法解決這個問題就是「走近邊緣,然後向下扭曲」的方法。基本上,你從一條蛇開始,把它向西移動,然後抱住西牆,然後抱住天花板。然後,你穿過每一個可能的方格,像一個緊身衣,直到你到達最底部,向西走,然後重新開始。
如果你嘗試,你可以把它變成一個真正優秀的AI:d
相關問題
- 1. 演示遊戲賽車遊戲crashs(GamerServicesNotAvailableException)
- 2. Pygame蛇遊戲
- 3. 與allegro蛇遊戲
- 4. 蛇遊戲板C++
- 5. 類的Java蛇遊戲沒有編制
- 6. 基於文本的批處理遊戲演示,編碼錯誤
- 7. Java角色扮演遊戲
- 8. 用Java編寫的3D遊戲編程
- 9. 小蟒蛇遊戲程序
- 10. 蟒蛇財富遊戲輪
- 11. 蛇遊戲(褪色食物)
- 12. 蛇遊戲自身碰撞
- 13. 蛇遊戲邊界碰撞
- 14. 拔河蟒蛇遊戲
- 15. 蛇遊戲隨機顏色
- 16. Python蛇遊戲數學
- 17. 蟒蛇jQuery網頁遊戲
- 18. 大會中的蛇遊戲
- 19. C#GDI貪吃蛇遊戲
- 20. 蟒蛇戰列艦遊戲
- 21. 蟒蛇板球遊戲
- 22. 貪吃蛇遊戲設計
- 23. 蛇遊戲,如何使蛇移動?
- 24. 蛇遊戲中的蛇運動
- 25. c#蛇遊戲如何阻止蛇
- 26. 蛇遊戲java,讓蛇穿牆
- 27. 如何編寫遊戲控制器遊戲杆?
- 28. 在ASP.NET中編寫遊戲大廳
- 29. 在Django編寫多人遊戲
- 30. 用java編寫遊戲圖像
簡單的解決方案=慢下來的蛇! – Mikhail 2012-02-07 06:31:21