贪吃蛇代码
时间: 2023-07-02 08:05:08 浏览: 64
以下是Python实现的简单贪吃蛇代码:
```python
import pygame
import random
# 初始化pygame库
pygame.init()
# 定义游戏窗口的大小
WINDOW_WIDTH = 500
WINDOW_HEIGHT = 500
# 定义贪吃蛇的初始位置和大小
SNAKE_SIZE = 10
SNAKE_X = 250
SNAKE_Y = 250
# 定义食物的初始位置和大小
FOOD_SIZE = 10
FOOD_X = random.randint(0, WINDOW_WIDTH - FOOD_SIZE)
FOOD_Y = random.randint(0, WINDOW_HEIGHT - FOOD_SIZE)
# 定义贪吃蛇的移动速度和方向
SNAKE_SPEED = 10
SNAKE_DIRECTION = 'right'
# 创建游戏窗口对象
game_window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
# 设置游戏窗口标题
pygame.display.set_caption('贪吃蛇')
# 创建字体对象
font = pygame.font.SysFont(None, 30)
# 定义游戏结束函数
def game_over():
# 显示游戏结束文字
game_over_text = font.render('游戏结束', True, (255, 255, 255))
game_window.blit(game_over_text, (WINDOW_WIDTH / 2 - game_over_text.get_width() / 2, WINDOW_HEIGHT / 2 - game_over_text.get_height() / 2))
pygame.display.update()
# 等待3秒后退出游戏
pygame.time.delay(3000)
pygame.quit()
quit()
# 游戏主循环
while True:
# 处理游戏窗口的关闭事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# 获取键盘按键状态
keys = pygame.key.get_pressed()
# 根据方向移动贪吃蛇的位置
if SNAKE_DIRECTION == 'right':
SNAKE_X += SNAKE_SPEED
elif SNAKE_DIRECTION == 'left':
SNAKE_X -= SNAKE_SPEED
elif SNAKE_DIRECTION == 'up':
SNAKE_Y -= SNAKE_SPEED
elif SNAKE_DIRECTION == 'down':
SNAKE_Y += SNAKE_SPEED
# 判断贪吃蛇是否撞墙
if SNAKE_X < 0 or SNAKE_X > WINDOW_WIDTH - SNAKE_SIZE or SNAKE_Y < 0 or SNAKE_Y > WINDOW_HEIGHT - SNAKE_SIZE:
game_over()
# 判断贪吃蛇是否吃到食物
if SNAKE_X == FOOD_X and SNAKE_Y == FOOD_Y:
FOOD_X = random.randint(0, WINDOW_WIDTH - FOOD_SIZE)
FOOD_Y = random.randint(0, WINDOW_HEIGHT - FOOD_SIZE)
# 绘制游戏窗口和游戏元素
game_window.fill((0, 0, 0))
pygame.draw.rect(game_window, (255, 0, 0), (FOOD_X, FOOD_Y, FOOD_SIZE, FOOD_SIZE))
pygame.draw.rect(game_window, (255, 255, 255), (SNAKE_X, SNAKE_Y, SNAKE_SIZE, SNAKE_SIZE))
pygame.display.update()
# 判断键盘按键状态并改变贪吃蛇的方向
if keys[pygame.K_RIGHT]:
SNAKE_DIRECTION = 'right'
elif keys[pygame.K_LEFT]:
SNAKE_DIRECTION = 'left'
elif keys[pygame.K_UP]:
SNAKE_DIRECTION = 'up'
elif keys[pygame.K_DOWN]:
SNAKE_DIRECTION = 'down'
```