📅  最后修改于: 2023-12-03 15:23:26.269000             🧑  作者: Mango
贪吃蛇游戏是一种经典的小游戏,在此我们将使用 Python 的 Turtle 库来实现贪吃蛇游戏。
贪吃蛇游戏的玩法很简单,玩家需要操纵一条小蛇在游戏区域中吃食物,每吃到一个食物,小蛇的身子就会变长一格。当小蛇撞到游戏区域边缘或者自己的身体时,游戏结束。
首先,我们要导入 turtle 库,然后设置画布大小和背景颜色。接着,我们需要创建一个小蛇的初始状态,包括头部和身体。然后就是小蛇运动的逻辑,小蛇会不断前进,每吃到一个食物,身子就会变长一格。同时,我们需要判断小蛇是否撞到墙壁或自己的身体,如果撞到了,游戏就结束了。最后,我们需要在画布上显示得分和游戏结束信息。
以下是代码片段:
# 导入 turtle 库
import turtle
import random
# 设置画布大小和背景颜色
turtle.setup(500, 500)
turtle.bgcolor('grey')
# 创建小蛇的头部和身体
snake_head = turtle.Turtle()
snake_head.shape('circle')
snake_head.color('black')
snake_head.penup()
snake_head.goto(0, 0)
snake_body = []
for i in range(3):
snake_body_segment = turtle.Turtle()
snake_body_segment.shape('square')
snake_body_segment.color('white')
snake_body_segment.penup()
snake_body_segment.goto(-20 * i, 0)
snake_body.append(snake_body_segment)
# 设置小蛇运动的逻辑
direction = 'right'
def move():
global direction
# 计算小蛇头部的新位置
x = snake_head.xcor()
y = snake_head.ycor()
if direction == 'right':
x += 20
elif direction == 'left':
x -= 20
elif direction == 'up':
y += 20
elif direction == 'down':
y -= 20
snake_head.goto(x, y)
# 让小蛇的身体跟着头部走
for i in range(len(snake_body) - 1, 0, -1):
x = snake_body[i - 1].xcor()
y = snake_body[i - 1].ycor()
snake_body[i].goto(x, y)
snake_body[0].goto(snake_head.xcor(), snake_head.ycor())
# 判断小蛇是否吃到了食物
if snake_head.distance(food) < 20:
food.goto(random.randint(-240, 240), random.randint(-240, 240))
new_body_segment = turtle.Turtle()
new_body_segment.shape('square')
new_body_segment.color('white')
new_body_segment.penup()
snake_body.append(new_body_segment)
# 判断小蛇是否撞到了墙壁或自己的身体
if snake_head.xcor() > 240 or snake_head.xcor() < -240 or snake_head.ycor() > 240 or snake_head.ycor() < -240:
turtle.write('Game Over', font=('Arial', 16, 'bold'), align='center')
for i in range(1, len(snake_body)):
if snake_head.distance(snake_body[i]) < 20:
turtle.write('Game Over', font=('Arial', 16, 'bold'), align='center')
# 循环调用 move() 函数,让小蛇继续移动
turtle.ontimer(move, 100)
turtle.ontimer(move, 100)
# 设置键盘控制小蛇的方向
def go_up():
global direction
if direction != 'down':
direction = 'up'
def go_down():
global direction
if direction != 'up':
direction = 'down'
def go_left():
global direction
if direction != 'right':
direction = 'left'
def go_right():
global direction
if direction != 'left':
direction = 'right'
turtle.onkey(go_up, 'Up')
turtle.onkey(go_down, 'Down')
turtle.onkey(go_left, 'Left')
turtle.onkey(go_right, 'Right')
turtle.listen()
# 创建食物
food = turtle.Turtle()
food.shape('square')
food.color('red')
food.penup()
food.goto(random.randint(-240, 240), random.randint(-240, 240))
# 在画布上显示得分和游戏结束信息
turtle.hideturtle()
turtle.penup()
turtle.goto(0, 250)
turtle.write('Score: 0', font=('Arial', 16, 'bold'), align='center')
以上代码实现了贪吃蛇游戏的基本逻辑,你可以在此基础上添加更多的功能和美化界面。希望这篇教程能够帮助你学习 Turtle 库和 Python 编程,也希望你能在自己的项目中成功地应用 Turtle 库。