當前位置:生活全書館 >

IT科技

> python編寫貪吃蛇

python編寫貪吃蛇

首先__init__初始化貪吃蛇的位置初始方向豎直向上。toward函式用於改變貪吃蛇的方向,(x,y)分別表示蛇頭在水平和豎直方向的朝向。朝左x=-1,朝右x=1,朝上y=-1,朝下y=1。move函式,使用標誌enlarge來判斷蛇是否吃到了食物,並進行相應的操作。eat_food函式判斷蛇是否吃到食物,吃到的話,分數加 100,並返回True。toward函式,用於改變蛇頭的方向,但如果改變方向與當前方向相反,就什麼操作都不執行。draw函式用於畫出貪吃蛇的模樣,蛇頭是略大一點的紅心,蛇身是小一點的黃心。

我們怎麼畫出這條蛇呢?這就要藉助函式pygame.draw.circle,這個函式的主要引數有screen:就是你要在其中畫出貪吃蛇的遊戲介面,color:圖案的顏色(RGB), position:圖案在螢幕上的位置, radius:的半徑,width:內部填色的大小,如果為零,圖案就是空心圓;如果與半徑大小相同,圖案就是實心圓。

下面是貪吃蛇的程式碼部分,大家可以結合註釋閱讀

python編寫貪吃蛇

python編寫貪吃蛇 第2張

其次是食物模組

np.random.randint用於產生邊界之內的座標,如果與貪吃蛇的座標重合,那麼就繼續生成新的隨機座標。

python編寫貪吃蛇 第3張

然後是init_board函式

board_width、board_height分別為遊戲介面的寬度和高度,根據計算得出邊框佔據的位置,然後列印出正方形來。pygame.draw.rect和pygame.draw.circle用法類似,區別就是rect四個引數分別為screen:螢幕,color:顏色,pos:橫座標 x,縱座標 y,矩形的長,矩形的寬。這裡我設定矩形長寬都為 20 。width和circle中width用法相同,都是填充大小的意思。

python編寫貪吃蛇 第4張

接著是game_over模組

如何判斷誰咬到自身呢?可以利用python內建資料結構set:set這種資料結構中不能有重複元素。如果將list變成set之後,長度變短了,就說明list中有重複元素,即貪吃蛇咬到自己了。

python編寫貪吃蛇 第5張

接下來是遊戲初始化模組

使用pygame模組需要使用pygame.init進行初始化。pygame.display.set_mode用來設定遊戲介面的大小。pygame.display.set_caption用來顯示遊戲標題。

python編寫貪吃蛇 第6張

最後是遊戲主函式

首先例項化貪吃蛇和食物。其次設定字型為SimHei,如果使用預設字型對中文的支援很不好。其次顯示遊戲介面,判斷遊戲是否失敗。如果失敗的話,就列印GAME OVER。否則就一直執行主函式。其中 pygame.event.get從佇列中獲取事件,也就是說必須先獲取事件,才能得到使用者的鍵盤輸入和其他操作,screen.fill用於填充螢幕,pygame.key.get_pressed用於獲取使用者的鍵盤輸入,pygame.display.update用來重新整理到之前的圖案,time.sleep用於控制重新整理的頻率。

python編寫貪吃蛇 第7張

標籤: 編寫 Python 貪吃蛇
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/pqe922.html