主要思路
(1)蛇每走一步,就使用BFS計算游戲界面中每個位置(蛇身除外)到達食物的最短路徑長;
(2)將蛇的安全定義為蛇是否可以跟著蛇尾運動,即蛇頭和蛇尾間是否存在路徑;
(3)蛇每次行動前先利用虛擬的蛇進行探路,若虛擬的蛇吃完食物后是安全的,真蛇才行動;
(4)若蛇和食物之間不存在路徑或者吃完食物后并不安全,就跟著蛇尾走;
(5)若蛇和食物之間、蛇和蛇尾之間均不存在路徑,就隨便挑一步可行的來走;
(6)保證目標是食物時蛇走最短路徑,目標是蛇尾時蛇走最長路徑,
不足之處
由于食物是隨機出現的,若虛擬的蛇跑一遍發現去吃食物是不安全的,真蛇就不會去吃食物,而是選擇追著蛇尾跑,若一直如此,就陷入了死回圈,蛇一直追著蛇尾跑跑跑,,,
直到你終止游戲為止,,,
開發工具
Python版本:3.5.4
相關模塊:
pygame模塊以及一些Python自帶的模塊,
環境搭建
安裝Python并添加到環境變數,pip安裝需要的相關模塊即可,
運行方式
在cmd視窗運行AI_snake.py檔案即可,
結果展示
動圖一直上傳失敗,,,
所以隨便截幾個圖~



更多
(1)為了保證代碼簡單易懂,所提供的代碼冗余度較高(比如進行了不必要的重復計算),有興趣者可對代碼進行優化;
(2)相關檔案中也提供了普通版本的貪吃蛇游戲(Normal_snake.py),
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/227243.html
標籤:Python
