" 贪吃蛇游戏的基本规则是让一个不断移动的蛇找到并吃掉不断出现的食物,同时避免撞到自己的身体。下面是一个使用Python和Pygame编写贪吃蛇游戏的简化版本。
首先,确保已经安装了Python环境和Pygame库。可以使用以下命令安装Pygame:
```
pip install pygame
```
接下来,创建一个名为`snake.py`的文件,并将以下代码粘贴到文件中:
```python
import pygame
import sys
import random
# 初始化Pygame
pygame.init()
# 设置屏幕大小和标题
screen_size = (800, 600)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption("贪吃蛇")
# 设置颜色
white = (255, 255, 255)
black = (0, 0, 0)
# 蛇和食物的大小
block_size = 20
# 蛇的初始位置
snake_position = [100, 100]
# 蛇的初始长度
snake_body = [[100, 100], [80, 100], [60, 100]]
# 食物的初始位置
food_position = [300, 300]
# 蛇的初始移动方向
move_direction = 'right'
# 游戏循环
while True:
# 检查事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
for key in keys:
if keys[pygame.K_UP]:
if move_direction != 'down':
move_direction = 'up'
if keys[pygame.K_DOWN]:
if move_direction != 'up':
move_direction = 'down'
if keys[pygame.K_LEFT]:
if move_direction != 'right':
move_direction = 'left'
if keys[pygame.K_RIGHT]:
if move_direction != 'left':
move_direction = 'right'
# 更新蛇的位置
if move_direction == 'right':
snake_position[0] += block_size
if move_direction == 'left':
snake_position[0] -= block_size
if move_direction == 'up':
snake_position[1] -= block_size
if move_direction == 'down':
snake_position[1] += block_size
# 添加新的蛇身体部分
snake_body.insert(0, list(snake_position))
# 检查蛇是否吃到食物
if snake_position == food_position:
food_position = [random.randrange(1, screen_size[0]/block_size)*block_size, random.randrange(1, screen_size[1]/block_size)*block_size]
else:
snake_body.pop()
# 检查蛇是否撞到墙或自己
if snake_position[0][0] >= screen_size[0] or snake_position[0][0] < 0 or snake_position[0][1] >= screen_size[1] or snake_position[0][1] < 0:
pygame.quit()
sys.exit()
for block in snake_body[1:]:
if block == snake_position:
pygame.quit()
sys.exit()
# 绘制游戏元素
screen.fill(black)
for block in snake_body:
pygame.draw.rect(screen, white, pygame.Rect(block[0], block[1], block_size, block_size))
pygame.draw.rect(screen, white, pygame.Rect(food_position[0], food_position[1], block_size, block_size))
pygame.display.flip()
# 控制游戏速度
pygame.time.Clock().tick(10)
```
运行"