帮我写一个贪吃蛇的游戏代码
时间: 2023-08-20 09:35:28 浏览: 49
好的,以下是一个简单的 Python 贪吃蛇游戏代码:
```python
import pygame
import random
# 初始化 Pygame
pygame.init()
# 定义画布大小
screen_width = 640
screen_height = 480
# 创建画布
screen = pygame.display.set_mode((screen_width, screen_height))
# 设置游戏标题
pygame.display.set_caption("贪吃蛇游戏")
# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# 定义贪吃蛇初始位置
snake_pos = [100, 50]
# 定义贪吃蛇初始长度
snake_body = [[100, 50], [90, 50], [80, 50]]
# 定义食物的初始位置
food_pos = [random.randrange(1, screen_width // 10) * 10,
random.randrange(1, screen_height // 10) * 10]
# 定义食物的大小
food_size = [10, 10]
# 定义贪吃蛇移动的方向
direction = "RIGHT"
change_direction = direction
# 定义游戏循环标志
game_over = False
# 游戏循环
while not game_over:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
change_direction = "LEFT"
elif event.key == pygame.K_RIGHT:
change_direction = "RIGHT"
elif event.key == pygame.K_UP:
change_direction = "UP"
elif event.key == pygame.K_DOWN:
change_direction = "DOWN"
# 改变贪吃蛇移动的方向
if direction == "LEFT" and change_direction != "RIGHT":
direction = change_direction
elif direction == "RIGHT" and change_direction != "LEFT":
direction = change_direction
elif direction == "UP" and change_direction != "DOWN":
direction = change_direction
elif direction == "DOWN" and change_direction != "UP":
direction = change_direction
# 移动贪吃蛇
if direction == "LEFT":
snake_pos[0] -= 10
elif direction == "RIGHT":
snake_pos[0] += 10
elif direction == "UP":
snake_pos[1] -= 10
elif direction == "DOWN":
snake_pos[1] += 10
# 判断贪吃蛇是否吃到食物
if snake_pos == food_pos:
food_pos = [random.randrange(1, screen_width // 10) * 10,
random.randrange(1, screen_height // 10) * 10]
snake_body.insert(0, list(snake_pos))
# 更新贪吃蛇的身体
if len(snake_body) > 1:
for i in range(len(snake_body) - 1, 0, -1):
snake_body[i] = snake_body[i - 1]
snake_body[0] = list(snake_pos)
# 绘制画面
screen.fill(BLACK)
pygame.draw.rect(screen, GREEN, [food_pos[0], food_pos[1], food_size[0], food_size[1]])
for pos in snake_body:
pygame.draw.rect(screen, WHITE, [pos[0], pos[1], 10, 10])
# 更新画面
pygame.display.update()
# 判断贪吃蛇是否碰到边界或自己的身体
if snake_pos[0] < 0 or snake_pos[0] > screen_width - 10 \
or snake_pos[1] < 0 or snake_pos[1] > screen_height - 10 \
or snake_pos in snake_body[1:]:
game_over = True
# 退出游戏
pygame.quit()
```
这个游戏使用 Pygame 库实现,需要先安装 Pygame 库。这个游戏的规则是:控制贪吃蛇移动,尽可能多地吃到食物,不要碰到边界或自己的身体。游戏循环中,首先处理事件,包括退出事件和方向键事件;然后根据方向移动贪吃蛇的位置,并判断是否吃到食物;然后更新贪吃蛇的身体;最后绘制画面并更新画面。如果贪吃蛇碰到边界或自己的身体,游戏结束。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)