贪吃蛇游戏是一款于 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.ligh...
以上代码可在浏览器中间接关上,相干教程可查看:如何关上并编辑别人用 Lightly 分享的我的项目?

明天的 Python 贪吃蛇教程就到这里,欢送你在评论区留言提出疑难和倡议,也欢送你查看 TeamCode 的一些往期文章。

怎么对待 Python(PyScript) 能够做浏览器前端开发语言?
Python 教程:从 Python 爬虫到数据分析
学习 Python 爬虫,手把手通过 Python 入门爬取网页信息