请你用python做一个贪吃蛇游戏
时间: 2024-12-28 15:30:24 浏览: 4
在Python中制作一个简单的贪吃蛇游戏,我们可以使用`pygame`库,它是一个非常流行的用于创建2D游戏的应用程序。以下是一个基本框架的示例:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置窗口大小和标题
win_size = (400, 600)
snake_speed = 15
font = pygame.font.SysFont('Arial', 20)
# 创建游戏窗口
screen = pygame.display.set_mode(win_size)
pygame.display.set_caption("贪吃蛇")
# 蛇的初始设置
snake_pos = [(200, 200), (210, 200), (220, 200)]
snake_dir = [0, -1] # 上下方向
# 食物的位置
food_pos = [random.randint(0, win_size[0] - 20), random.randint(0, win_size[1] - 20)]
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_UP] and snake_dir != [0, 1]:
snake_dir = [0, -1]
elif keys[pygame.K_DOWN] and snake_dir != [0, -1]:
snake_dir = [0, 1]
elif keys[pygame.K_LEFT] and snake_dir != [1, 0]:
snake_dir = [-1, 0]
elif keys[pygame.K_RIGHT] and snake_dir != [-1, 0]:
snake_dir = [1, 0]
snake_head = [snake_pos[-1][0] + snake_dir[0], snake_pos[-1][1] + snake_dir[1]]
# 检查蛇是否吃到食物
if snake_head == food_pos:
food_pos = [random.randint(0, win_size[0] - 20), random.randint(0, win_size[1] - 20)]
snake_pos.append(snake_head)
else:
snake_pos.pop(0)
screen.fill((0, 0, 0)) # 清屏
for pos in snake_pos:
pygame.draw.rect(screen, (255, 0, 0), pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(screen, (0, 255, 0), pygame.Rect(food_pos[0], food_pos[1], 10, 10))
text = font.render(f"Score: {len(snake_pos) - 1}", True, (255, 255, 255))
screen.blit(text, (10, 10))
pygame.display.flip()
pygame.time.delay(snake_speed)
```
这个代码只是一个基础版本,实际游戏中还需要处理边界、蛇身碰撞检测以及得分增加等更复杂的逻辑。如果你想深入学习并改进这个游戏,可以查阅更多关于pygame的教程或者参考一些开源的贪吃蛇游戏项目。
阅读全文