Python實現AI自動版貪吃蛇

主要思路

(1)蛇每走一步,就使用BFS計算遊戲界面中每一個位置(蛇身除外)到達食物的最短路徑長;安全

(2)將蛇的安全定義爲蛇是否能夠跟着蛇尾運動,即蛇頭和蛇尾間是否存在路徑;工具

(3)蛇每次行動前先利用虛擬的蛇進行探路,若虛擬的蛇吃完食物後是安全的,真蛇才行動;開發工具

(4)若蛇和食物之間不存在路徑或者吃完食物後並不安全,就跟着蛇尾走;優化

(5)若蛇和食物之間、蛇和蛇尾之間均不存在路徑,就隨便挑一步可行的來走;spa

(6)保證目標是食物時蛇走最短路徑,目標是蛇尾時蛇走最長路徑。code

不足之處

因爲食物是隨機出現的,若虛擬的蛇跑一遍發現去吃食物是不安全的,真蛇就不會去吃食物,而是選擇追着蛇尾跑,若一直如此,就陷入了死循環,蛇一直追着蛇尾跑跑跑。。。orm

直到你終止遊戲爲止。。。遊戲

開發工具

Python版本:3.5.4ip

相關模塊:開發

pygame模塊以及一些Python自帶的模塊。

環境搭建

安裝Python並添加到環境變量,pip安裝須要的相關模塊便可。

運行方式

在cmd窗口運行AI_snake.py文件便可。

結果展現

動圖一直上傳失敗。。。

因此隨便截幾個圖~

 
image.png
 
image.png
 
image.png

更多

(1)爲了保證代碼簡單易懂,所提供的代碼冗餘度較高(好比進行了沒必要要的重複計算),有興趣者可對代碼進行優化;

(2)相關文件中也提供了普通版本的貪吃蛇遊戲(Normal_snake.py)。

相關文章
相關標籤/搜索