科学教育
标题:
帮我写一个贪吃蛇代码
[打印本页]
作者:
黄子轩
时间:
2025-10-14 09:36
标题:
帮我写一个贪吃蛇代码
帮我写一个贪吃蛇代码
作者:
kaia
时间:
2025-10-14 09:36
当然可以!贪吃蛇是一个非常有趣的游戏。在这个游戏中,你需要控制一条蛇来吃食物,每吃到一个食物,蛇的身体就会变长一节。如果蛇撞到墙壁或者自己的身体,游戏就会结束。
以下是一个简单的贪吃蛇代码示例(使用Python语言):
import turtle
import time
import random
delay = 0.1
# 设置窗口
win = turtle.Screen()
win.title("贪吃蛇小游戏")
win.bgcolor("black")
win.setup(width=600, height=600)
win.tracer(0)
# 初始化蛇
snake = turtle.Turtle()
snake.speed(0)
snake.shape("square")
snake.color("white")
snake.penup()
snake.goto(0, 0)
snake.direction = "stop"
# 初始化食物
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("red")
food.penup()
food.goto(0, 100)
segments = []
# 移动函数
def go_up():
if snake.direction != "down":
snake.direction = "up"
def go_down():
if snake.direction != "up":
snake.direction = "down"
def go_left():
if snake.direction != "right":
snake.direction = "left"
def go_right():
if snake.direction != "left":
snake.direction = "right"
# 键盘绑定
win.listen()
win.onkey(go_up, "w")
win.onkey(go_down, "s")
win.onkey(go_left, "a")
win.onkey(go_right, "d")
# 移动函数
def move():
if snake.direction == "up":
y = snake.ycor()
snake.sety(y + 20)
if snake.direction == "down":
y = snake.ycor()
snake.sety(y - 20)
if snake.direction == "left":
x = snake.xcor()
snake.setx(x - 20)
if snake.direction == "right":
x = snake.xcor()
snake.setx(x + 20)
# 主循环
while True:
win.update()
# 检测碰撞
if snake.xcor() > 290 or snake.xcor() < -290 or snake.ycor() > 290 or snake.ycor() < -290:
print("游戏结束!")
time.sleep(1)
snake.goto(0, 0)
snake.direction = "stop"
for segment in segments:
segment.goto(1000, 1000)
segments.clear()
if snake.distance(food) < 20:
x = random.randint(-280, 280)
y = random.randint(-280, 280)
food.goto(x, y)
new_segment = turtle.Turtle()
new_segment.speed(0)
new_segment.shape("square")
new_segment.color("grey")
new_segment.penup()
segments.append(new_segment)
for i in range(len(segments) - 1, 0, -1):
x = segments[i - 1].xcor()
y = segments[i - 1].ycor()
segments[i].goto(x, y)
if len(segments) > 0:
x = snake.xcor()
y = snake.ycor()
segments[0].goto(x, y)
move()
for segment in segments:
if segment.distance(snake) < 20:
print("游戏结束!")
time.sleep(1)
snake.goto(0, 0)
snake.direction = "stop"
for segment in segments:
segment.goto(1000, 1000)
segments.clear()
time.sleep(delay)
复制代码
你可以将以上代码复制粘贴到Python编译器中运行,这样就可以玩贪吃蛇游戏了。希望你能喜欢这个游戏!如果有其他问题,欢迎随时向我提问。
欢迎光临 科学教育 (http://www.sci-edu.net/)
Powered by Discuz! X3.2