贪吃蛇小游戏的核心代码在于如何让蛇吃一个食物身体就变长。在海龟作图中,有图章命令可以实现这个功能。相比在scratch语言中简单的图章命令。
python中的图章功能功能更丰富,可以实现更佳的动画效果。基本原因就是蛇碰到食物就多盖一个章,并清除最开始盖的第一个章,这样看起来就有种蛇越来越长的效果。
#下面是python贪吃蛇小游戏源代码示例:
""" 067_贪吃蛇小游戏4_得分与结束游戏.py
本节课制作一个完整的贪吃蛇小游戏。
"""
from turtle import *
from time import sleep
from random import randint
from winsound import PlaySound,SND_ASYNC
背景音乐="欢快女唱电音歌曲超嗨.wav"
碰撞声="碰撞声.wav"
小蛇=Turtle()
小蛇.penup()
小蛇.speed(0) #让小蛇的速度最快
小蛇.pencolor("white")
小蛇.fillcolor("cyan")
游戏结束=False #增加了游戏结束的逻辑变量
得分=0
屏幕=小蛇.getscreen()
屏幕.title("贪吃蛇小游戏")
屏幕宽度=800
屏幕高度=600
屏幕.setup(屏幕宽度,屏幕高度)
屏幕.bgcolor("black")
#设定让贪吃蛇不断地移动的函数。
def 移动小蛇():
global 游戏结束
小蛇.clearstamps(1) #清除最开始盖的第一个章
小蛇.stamp() #马上又盖一个章
小蛇.fd(20)
#这里是游戏结束的核心代码,以小蛇超出边界做为小蛇死亡。
if 小蛇.xcor()<(屏幕宽度/2) and 小蛇.xcor()>(-屏幕宽度/2) and 小蛇.ycor()<(屏幕高度/2) and 小蛇.ycor()>(-屏幕高度/2):
屏幕.ontimer(移动小蛇,10)
else:
PlaySound(碰撞声, SND_ASYNC) #异步播放音效
游戏结束=True
endGame()
#增加边框代码段
小边=Turtle(visible=False)
小边.pensize(30)
小边.pencolor('red')
小边.fillcolor('red')
小边.setheading(90)
小边.speed(0)
小边.penup()
小边.goto(-屏幕宽度/2,屏幕高度/2)
小边.pendown()
for i in range(2):
小边.fd(屏幕宽度)
小边.right(90)
小边.fd(屏幕高度)
小边.right(90)
#以下是主要增加的代码段
食物=Turtle(visible=False)
食物.penup()
食物.speed(0)
食物.goto(randint(50-屏幕宽度/2,屏幕宽度/2-50),randint(50-屏幕高度/2,屏幕高度/2-50))
食物.pencolor("yellow")
食物.fillcolor("green")
食物.shape("circle")
食物.showturtle()
def 等待小蛇():
global 得分 #增加全局变量统计所吃到的食物数量
if 食物.distance(小蛇.pos())
上面的程序运行后,出现的界面是这样的,中间一个按钮在闪动,单击开始按钮就会有小蛇出来,你需要马上操作它去吃食物,否则小蛇碰到边缘就会死掉。
少儿python编程培训预订开始,单击链接享受优惠:https://item.taobao.com/item.htm?id=544061935133
程序运行后视频演示:

