做一个贪吃蛇游戏的python程序
时间: 2024-05-09 07:19:14 浏览: 7
以下是一个简单的贪吃蛇游戏的 Python 程序:
```python
import pygame
import random
# 初始化 Pygame
pygame.init()
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 定义游戏区域
width = 800
height = 600
# 创建游戏窗口
screen = pygame.display.set_mode((width, height))
# 设置游戏标题
pygame.display.set_caption('Snake Game')
# 定义蛇的初始位置和方向
snake = [(width/2, height/2)]
dx = 10
dy = 0
# 定义食物的初始位置
food = (random.randint(0, width/10-1)*10, random.randint(0, height/10-1)*10)
# 定义游戏结束的标志
game_over = False
# 定义游戏循环
while not game_over:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
# 处理按键事件
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
dx = -10
dy = 0
elif event.key == pygame.K_RIGHT:
dx = 10
dy = 0
elif event.key == pygame.K_UP:
dx = 0
dy = -10
elif event.key == pygame.K_DOWN:
dx = 0
dy = 10
# 更新蛇的位置
head = (snake[0][0]+dx, snake[0][1]+dy)
snake.insert(0, head)
# 判断是否吃到食物
if head == food:
food = (random.randint(0, width/10-1)*10, random.randint(0, height/10-1)*10)
else:
snake.pop()
# 判断是否撞墙或撞到自己
if head[0] < 0 or head[0] >= width or head[1] < 0 or head[1] >= height or head in snake[1:]:
game_over = True
# 绘制游戏界面
screen.fill(white)
pygame.draw.rect(screen, red, (food[0], food[1], 10, 10))
for s in snake:
pygame.draw.rect(screen, black, (s[0], s[1], 10, 10))
pygame.display.update()
# 退出 Pygame
pygame.quit()
```
在这个程序中,我们使用了 Pygame 模块来实现游戏界面的创建和绘制,使用了列表来表示蛇和食物的位置和方向,通过循环和事件处理来实现游戏的交互和更新。该程序的运行效果如下图所示:
![image.png](attachment:image.png)