用python写一个贪吃蛇小游戏。
时间: 2024-04-08 18:35:33 浏览: 59
下面是一个简单的贪吃蛇小游戏的示例代码,使用Python的pygame库实现:
```python
import pygame
import random
# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
# 设置窗口大小和格子大小
window_width, window_height = 800, 600
grid_size = 20
# 初始化pygame
pygame.init()
# 创建窗口
window_size = (window_width, window_height)
window = pygame.display.set_mode(window_size)
pygame.display.set_caption("贪吃蛇游戏")
# 游戏时钟
clock = pygame.time.Clock()
# 蛇的初始位置和速度
snake_x = window_width // 2
snake_y = window_height // 2
snake_speed_x = 0
snake_speed_y = 0
# 蛇身体的列表
snake_body = []
snake_length = 1
# 食物的初始位置
food_x = random.randint(0, (window_width - grid_size) // grid_size) * grid_size
food_y = random.randint(0, (window_height - grid_size) // grid_size) * grid_size
# 游戏结束标志
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:
snake_speed_x = -grid_size
snake_speed_y = 0
elif event.key == pygame.K_RIGHT:
snake_speed_x = grid_size
snake_speed_y = 0
elif event.key == pygame.K_UP:
snake_speed_x = 0
snake_speed_y = -grid_size
elif event.key == pygame.K_DOWN:
snake_speed_x = 0
snake_speed_y = grid_size
# 更新蛇的位置
snake_x += snake_speed_x
snake_y += snake_speed_y
# 判断蛇是否吃到食物
if snake_x == food_x and snake_y == food_y:
food_x = random.randint(0, (window_width - grid_size) // grid_size) * grid_size
food_y = random.randint(0, (window_height - grid_size) // grid_size) * grid_size
snake_length += 1
# 判断蛇是否撞到墙壁或自己的身体
if (snake_x < 0 or snake_x >= window_width or
snake_y < 0 or snake_y >= window_height or
(snake_x, snake_y) in snake_body):
game_over = True
# 更新蛇身体的列表
snake_body.append((snake_x, snake_y))
if len(snake_body) > snake_length:
del snake_body[0]
# 清除窗口
window.fill(BLACK)
# 绘制蛇的身体和食物
for body_part in snake_body:
pygame.draw.rect(window, GREEN, (body_part[0], body_part[1], grid_size, grid_size))
pygame.draw.rect(window, RED, (food_x, food_y, grid_size, grid_size))
# 更新窗口显示
pygame.display.flip()
# 控制游戏帧率
clock.tick(10)
# 退出游戏
pygame.quit()
```
这个示例代码实现了一个简单的贪吃蛇小游戏。玩家可以使用上下左右键来控制蛇的移动,目标是吃到食物并尽量避免撞到墙壁或自己的身体。游戏窗口大小、格子大小、蛇的速度等参数可以根据需要进行调整。
阅读全文