请用python编写一个谈吃蛇的代码,要有中文注释并且可以正常运行
时间: 2024-05-04 13:17:03 浏览: 16
以下是一个简单的谈吃蛇的 Python 代码,注释已经添加在代码中,你可以直接运行它:
```python
import random
import turtle
# 设置游戏窗口
window = turtle.Screen()
window.title("谈吃蛇")
window.bgcolor("black")
window.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))
# 定义蛇头的移动函数
def move():
if head.direction == "up":
y = head.ycor()
head.sety(y + 20)
elif head.direction == "down":
y = head.ycor()
head.sety(y - 20)
elif head.direction == "right":
x = head.xcor()
head.setx(x + 20)
elif head.direction == "left":
x = head.xcor()
head.setx(x - 20)
# 定义蛇头的方向控制函数
def go_up():
head.direction = "up"
def go_down():
head.direction = "down"
def go_right():
head.direction = "right"
def go_left():
head.direction = "left"
# 添加键盘事件监听器
window.listen()
window.onkeypress(go_up, "w")
window.onkeypress(go_down, "s")
window.onkeypress(go_right, "d")
window.onkeypress(go_left, "a")
# 开始游戏循环
while True:
window.update() # 更新游戏窗口
# 检测蛇头与食物是否相遇
if head.distance(food) < 20:
food.goto(random.randint(-290, 290), random.randint(-290, 290))
move() # 移动蛇头
# 检测蛇头是否超出边界
if head.xcor() > 290 or head.xcor() < -290 or head.ycor() > 290 or head.ycor() < -290:
head.goto(0, 0)
head.direction = "stop"
# 每隔 0.1 秒移动一次蛇头
turtle.delay(100)
```
该代码使用 Turtle 库创建了一个简单的贪吃蛇游戏窗口,并使用键盘事件监听器来控制蛇头的方向。在每个游戏循环中,检测蛇头是否与食物相遇,如果相遇则再随机生成一个食物位置。检测蛇头是否超出边界,并且在每隔 0.1 秒移动一次蛇头。