贪吃蛇turtle版

今天,来写一下贪吃蛇的代码
用的是turtle非常简单
源代码如下
import turtle
import time
import random
  
delay = 0.1
  
# Score
score = 0
high_score = 0
  
# Set up the screen
wn = turtle.Screen()
wn.title("Snake Game by @TokyoEdTech")
wn.bgcolor("green")
wn.setup(width=600, height=600)
wn.tracer(0)  # Turns off the screen updates
  
# Snake head
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("black")
head.penup()
head.goto(0, 0)
head.direction = "stop"
  
# Snake food
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("red")
food.penup()
food.goto(0, 100)
  
segments = []
  
# Pen
pen = turtle.Turtle()
pen.speed(0)
pen.s

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是Python中使用turtle库实现贪吃蛇游戏的示例代码: ```python import turtle import random import time # 设置游戏窗口 win = turtle.Screen() win.title("贪吃蛇") win.bgcolor("black") win.setup(width=600, height=600) # 定义蛇头和食物 head = turtle.Turtle() head.shape("square") head.color("white") head.penup() head.goto(0, 0) head.direction = "stop" food = turtle.Turtle() food.shape("circle") food.color("red") food.penup() food.goto(random.randint(-290, 290), random.randint(-290, 290)) # 定义蛇的身体列表 body = [] # 定义蛇移动的函数 def move(): # 移动蛇的身体 for i in range(len(body) - 1, 0, -1): body[i].goto(body[i - 1].xcor(), body[i - 1].ycor()) # 移动蛇头 if head.direction == "up": head.sety(head.ycor() + 20) elif head.direction == "down": head.sety(head.ycor() - 20) elif head.direction == "left": head.setx(head.xcor() - 20) elif head.direction == "right": head.setx(head.xcor() + 20) # 检测蛇头是否与食物碰撞 if head.distance(food) < 20: # 食物移动到随机位置 food.goto(random.randint(-290, 290), random.randint(-290, 290)) # 添加一个新的身体方块 new_body = turtle.Turtle() new_body.shape("square") new_body.color("green") new_body.penup() body.append(new_body) # 检测蛇头是否与边界碰撞 if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290: time.sleep(1) head.goto(0, 0) head.direction = "stop" # 移除蛇的身体方块 for b in body: b.goto(1000, 1000) body.clear() # 检测蛇头是否与身体碰撞 for b in body: if head.distance(b) < 20: time.sleep(1) head.goto(0, 0) head.direction = "stop" # 移除蛇的身体方块 for b in body: b.goto(1000, 1000) body.clear() # 延迟移动蛇 time.sleep(0.1) # 循环调用移动函数 win.ontimer(move, 100) # 定义蛇头移动的函数 def go_up(): if head.direction != "down": head.direction = "up" def go_down(): if head.direction != "up": head.direction = "down" def go_left(): if head.direction != "right": head.direction = "left" def go_right(): if head.direction != "left": head.direction = "right" # 绑定键盘事件 win.listen() win.onkeypress(go_up, "Up") win.onkeypress(go_down, "Down") win.onkeypress(go_left, "Left") win.onkeypress(go_right, "Right") # 循环调用移动函数 move() # 主循环 win.mainloop() ``` 希望这个示例可以帮助你重新实现贪吃蛇游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值