以下是一个简单的贪吃虫游戏代码示例,使用 Python 的 `pygame` 库实现: ```python import pygame import random # 屏幕尺寸 SCREEN_WIDTH = 640 SCREEN_HEIGHT = 480 # 小方格大小 GRID_SIZE = 20 # 颜色定义 WHITE = (255, 255, 255) BLACK = (0, 0, 0) GREEN = (0, 255, 0) # 初始化 pygame pygame.init() # 创建屏幕 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("贪吃虫游戏") # 游戏时钟 clock = pygame.time.Clock() # 贪吃虫的初始位置和速度 snake_pos = [200, 100] snake_speed = [0, 0] # 食物的初始位置 food_pos = [random.randint(0, SCREEN_WIDTH // GRID_SIZE - 1) * GRID_SIZE, random.randint(0, SCREEN_HEIGHT // GRID_SIZE - 1) * GRID_SIZE] # 贪吃虫的身体列表 snake_body = [[snake_pos[0], snake_pos[1]]] # 游戏结束标志 game_over = False # 游戏主循环 while not game_over: for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_UP and snake_speed[1]!= GRID_SIZE: snake_speed = [0, -GRID_SIZE] elif event.key == pygame.K_DOWN and snake_speed[1]!= -GRID_SIZE: snake_speed = [0, GRID_SIZE] elif event.key == pygame.K_LEFT and snake_speed[0]!= GRID_SIZE: snake_speed = [-GRID_SIZE, 0] elif event.key == pygame.K_RIGHT and snake_speed[0]!= -GRID_SIZE: snake_speed = [GRID_SIZE, 0] # 根据速度移动贪吃虫头部 snake_pos[0] += snake_speed[0] snake_pos[1] += snake_speed[1] # 判断是否吃到食物 if snake_pos[0] == food_pos[0] and snake_pos[1] == food_pos[1]: food_pos = [random.randint(0, SCREEN_WIDTH // GRID_SIZE - 1) * GRID_SIZE, random.randint(0, SCREEN_HEIGHT // GRID_SIZE - 1) * GRID_SIZE] else: # 移除尾部 snake_body.pop() # 新增头部 snake_body.insert(0, list(snake_pos)) # 判断是否撞到自己或边界 if [snake_pos[0], snake_pos[1]] in snake_body[1:]: game_over = True elif snake_pos[0] < 0 or snake_pos[0] >= SCREEN_WIDTH or snake_pos[1] < 0 or snake_pos[1] >= SCREEN_HEIGHT: game_over = True # 绘制 screen.fill(BLACK) # 绘制食物 pygame.draw.rect(screen, GREEN, [food_pos[0], food_pos[1], GRID_SIZE, GRID_SIZE]) # 绘制贪吃虫 for pos in snake_body: pygame.draw.rect(screen, WHITE, [pos[0], pos[1], GRID_SIZE, GRID_SIZE]) # 刷新屏幕 pygame.display.flip() # 控制游戏帧率 clock.tick(10) # 退出游戏 pygame.quit() ``` 额外需要注意的逻辑点: 1. 代码中的速度和方格大小需要根据实际需求进行调整,以达到合适的游戏体验。 2. 可以增加更多的功能,如计分、难度等级等。 3. 对于碰撞检测的逻辑,需要仔细检查以确保准确性和稳定性。 [2025-03-26 21:26:23 | AI写代码神器 | 930点数解答]