程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

使用 Python Turtle 制作貪吃蛇游戲

編輯:Python

貪吃蛇游戲是一款於 1976 年由格雷姆林工業(Gremlin Industries)開發,並由世嘉游戲(SEGA)發行的街機迷宮游戲。這款游戲曾經登上多款諾基亞黑白機,對上世紀的玩家來說頗有懷舊感。

貪吃蛇的玩法

玩家在貪吃蛇游戲中使用方向鍵操作貪吃蛇前進,盡可能收集食物取得高分。貪吃蛇在獲取食物後,身體長度會進一步加長,而當玩家不小心撞向牆壁或自己時,游戲便結束。

對 Python 初學者而言,玩法邏輯較為簡單的貪吃蛇游戲正適合用來練習 Turtle 框架,而這款以 Python 為核心的游戲將會使用以下三個庫:

  • Turtle - 用於在虛擬畫布中繪制圖形

  • Time - 計算游戲中的用時

  • Random - 在 Python 中生成隨機數字,對應隨機出現的食物

這篇教程將使用 Lightly 在線編寫 Python 代碼,無需下載任何應用或安裝環境依賴即可在浏覽器中編程。

第一步:導入模塊

在開始其他編寫其他代碼前,我們需要使用 import 代碼分別導入 turtle、time 及 random 等模塊。由於這些模塊都已預安裝在 Python 中,我們只需在代碼中導入即可。若模塊缺失,你也可以在 Lightly 中使用 Quick Fix 進行快速安裝。

第二步:設置游戲界面

完成模塊導入後,我們需要繪制游戲窗口、蛇頭及食物等游戲內容,同時也需要在頂部顯示游戲得分。

# 繪制窗口
wn = turtle.Screen()
wn.title("Snake Game")
wn.bgcolor("blue")
# 用戶可以自行調整窗口的長度與寬度
wn.setup(width=600, height=600)
wn.tracer(0)
# 蛇頭
head = turtle.Turtle()
head.shape("square")
head.color("white")
head.penup()
head.goto(0, 0)
head.direction = "Stop"
# 游戲中的食物
food = turtle.Turtle()
colors = random.choice(['red', 'green', 'black'])
shapes = random.choice(['square', 'triangle', 'circle'])
food.speed(0)
food.shape(shapes)
food.color(colors)
food.penup()
food.goto(0, 100)
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0, 250)
pen.write("得分 : 0 最高得分 : 0", align="center",
font=("candara", 24, "bold"))

代碼效果:

第三步:監聽按鍵

添加物體後還需要監聽按鍵,才能通過按鍵控制蛇的動作。在這個游戲中,我們使用 WASD 四鍵分別控制上下左右移動。

# 設定按鍵方向
def group():
if head.direction != "down":
head.direction = "up"
def godown():
if head.direction != "up":
head.direction = "down"
def goleft():
if head.direction != "right":
head.direction = "left"
def goright():
if head.direction != "left":
head.direction = "right"
def move():
if head.direction == "up":
y = head.ycor()
head.sety(y+20)
if head.direction == "down":
y = head.ycor()
head.sety(y-20)
if head.direction == "left":
x = head.xcor()
head.setx(x-20)
if head.direction == "right":
x = head.xcor()
head.setx(x+20)
wn.listen()
wn.onkeypress(group, "w")
wn.onkeypress(godown, "s")
wn.onkeypress(goleft, "a")
wn.onkeypress(goright, "d")

第四步:完善游戲機制

我們現在已經可以通過鍵盤按鍵控制貪吃蛇移動,但我們還需要進一步添加游戲機制,讓游戲變得更完善。例如:改變蛇身的長度和顏色、貪吃蛇吃下食物後計分、檢查蛇頭碰撞情況、計分並保存最高分等。

游戲最終的效果:

【查看完整代碼】https://074658e7fa-share.lightly.teamcode.com

以上代碼可在浏覽器中直接打開,相關教程可查看:

如何打開並編輯他人用 Lightly 分享的項目?

今天的 Python 貪吃蛇教程就到這裡,歡迎你在評論區留言提出疑問和建議,也歡迎你查看 TeamCode 的一些往期文章。

怎麼看待 Python(PyScript) 可以做浏覽器前端開發語言?

Python 教程:從 Python 爬蟲到數據分析

學習 Python 爬蟲,手把手通過 Python 入門爬取網頁信息


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved