Python 貪吃蛇,python60行繪圖程序_不敢相信,60行python代碼就寫出了貪吃蛇游戲

 2023-11-11 阅读 24 评论 0

摘要:通過寫游戲玩編程是一個非常有趣的事,網上用Python寫貪吃蛇的代碼很多,大部分都用類來寫的,比較復雜。今天看到一個非常簡潔的貪吃蛇游戲代碼,只有60幾行,非常適合小白上手,而且思路極其清晰,趕緊分享給大家! 我們先

通過寫游戲玩編程是一個非常有趣的事,網上用Python寫貪吃蛇的代碼很多,大部分都用類來寫的,比較復雜。今天看到一個非常簡潔的貪吃蛇游戲代碼,只有60幾行,非常適合小白上手,而且思路極其清晰,趕緊分享給大家!

je6rYv.jpeg

我們先來看一下游戲的效果圖:

UBvyI3.jpeg

一般來說一個貪吃蛇游戲需要考慮下面幾點:

首先:畫出food和snack

Python 貪吃蛇。接著:控制snack上下左右的移動

然后:計算snack和food的碰撞,然后snack變長

最后:當snack碰到四周的墻壁或者蛇頭碰到身體,則游戲結束

看起來需要寫的東西還蠻多的,怎么就能60幾行代碼搞定呢了!大家還記不記得Python有內置的海龜庫turtle.這個庫可以畫出很多好玩有趣的圖案和小動畫。沒錯,這個代碼就是用turtle這個庫完成了!源碼非常簡單,我一一給大家說一下:

第一步

rIbAR3.jpeg

用python畫圖。引用turtle庫,里面有一堆簡單好玩的函數,方便我們來制作動畫的

引用random庫,主要是為了讓食物隨機出現

引用freegames庫,這個庫把一些元素封裝好了,比如方形,二維向量vector.這個二維向量非常重要,因為snack的move,坐標的變換,上升下降等等,我們只需要簡單的調用vector里面封裝函數就可以搞定。當然這是第三方的庫pip install 一下即可!其實看它的源碼也是用的turtle.

接著我們初始化出food和snack。注意為啥snack要用list,這個地方非常巧妙我后面會講到

aim是snack行走的方向Vector(0,10),第一個數字表示x軸,第二個數字表示y軸。10表示向上移動10,如果是-10表示向下移動10

python繪圖作品,change函數主要是來改變方向的

inside函數是用來判斷snack有沒有碰到墻壁

第二步

umuMFz.jpeg

這部分的代碼主要是處理動態交互的過程:

1).snack分head和body:

python圖形繪制?當沒有碰到食物的時候,snack只有一個矩形框,既是頭也是身體!

所以這里用的snack[-1].copy把head 拷貝一份出來,方便后面的move.

2).考慮游戲如果結束:

一種就是判斷有無碰到墻體,或者頭部碰到了身體!看這里的代碼非常簡潔用head in snack,就輕松搞定。

接著snack這里列表會把移動過的head放進來,也就是說snack這時有頭和身體了(當前坐標和移動后的坐標)。

python程序代碼。3).最難的碰到食物如何處理:

考如果snack碰到了food(蛇吃到食物),應該怎么辦?食物會去畫布上的隨機另外一個坐標,snack會變長。

否則snack列表pop(0),也就是只保留移動后的坐標。

非常巧妙的解決了snack身體變成的問題.

4).接著把food畫出來,把snack的整體身體和頭都畫出來

python簡單代碼?5).為了用動態移動的效果,需要用循環!這里用了一個遞歸循環調用move函數,并且設置為300ms的延遲

第三步

Rreqiu.jpeg

這里主要是初始化畫布,已經綁定一些鍵盤的方向鍵,這樣好讓snack上下左右移動!然后用listen()來監聽。

有同學問hideturtle()函數是干嗎的,主要是隱藏海龜頭,用過turtle的同學就懂的!

這個我目前為止見過的最簡單的貪吃蛇的游戲源碼,非常牛逼!也非常適合小白上手玩,基本上沒有復雜的概念。大家有興趣可以去看Github上的源碼,一定獲益匪淺!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/170206.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息