贪吃蛇代码


以下是一个使用 Python 编写的简单贪吃蛇游戏的示例代码: ```python import pygame import random # 基础设置 # 屏幕高度 SCREEN_HEIGHT = 480 # 屏幕宽度 SCREEN_WIDTH = 600 # 小方格大小 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.randrange(1, (SCREEN_WIDTH // GRID_SIZE)) * GRID_SIZE, random.randrange(1, (SCREEN_HEIGHT // GRID_SIZE)) * GRID_SIZE] # 蛇的身体列表 snake_body = [[snake_pos[0], snake_pos[1]]] # 游戏结束标志 game_over = False # 得分 score = 0 # 游戏主循环 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.randrange(1, (SCREEN_WIDTH // GRID_SIZE)) * GRID_SIZE, random.randrange(1, (SCREEN_HEIGHT // GRID_SIZE)) * GRID_SIZE] score += 1 else: # 移除蛇尾 snake_body.pop() # 检查蛇是否撞到自己或边界 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 # 添加蛇头到身体 snake_body.insert(0, list(snake_pos)) # 绘制 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]) # 显示得分 font = pygame.font.SysFont(None, 36) text = font.render("Score: " + str(score), 1, WHITE) screen.blit(text, [10, 10]) # 刷新屏幕 pygame.display.flip() # 控制游戏帧率 clock.tick(10) # 退出游戏 pygame.quit() ``` 这只是一个简单的贪吃蛇实现,您可以根据需要对其进行改进和扩展。希望对您有帮助! [2024-11-07 17:53:09 | AI写代码神器 | 958点数解答]
- 贪吃蛇。(57点数解答 | 2025-04-17 20:33:23)74
- 贪吃蛇(1352点数解答 | 2025-06-06 20:22:46)55
- 现要运用python程序开发一款用于大学生日常花销记账的app,测试与部署工程师具体需要干的工作如下: .后端开发者需要进行的工作如下: 火设计并实现后端api,用于处理记账相关的数据操作。 -使用pvthon的web框架(如flask或djang0)搭建后端服务。 设计数据库模型,并编写相应的drm(对象关系映射)代码。 实现用户认证和授权机制。 编写后端测试代码,确保代码质量和稳定性。具体如何操作呢?需要做什么工作呢?(612点数解答 | 2024-05-15 18:59:38)229
- 编写 js 代码,定义变量 test,赋值为“red”。(6点数解答 | 2024-05-19 20:46:45)255
- 编写 js 代码,定义数组变量 mycars,存储"saab", "volvo", "bmw"三个元素。(14点数解答 | 2024-05-19 20:47:47)252
- 编写 js 代码,判断 color 是否为"red",如果是则将 color 值改成"green",并显示提示框,内容为 color 的值。(176点数解答 | 2024-05-20 21:33:04)292
- 编写 js 代码,判断 a 是否大于 7,若为真则在页面输出“a>b”;若 a 等于 b 则输出“a=b”;否则输出“a<b”。 var a = 9,b = 17;(47点数解答 | 2024-05-20 22:10:14)206
- 编写 js 代码,使用 for 循环,实现 1 到 100 相加,将结果输出到页面。(240点数解答 | 2024-05-20 22:11:29)241
- 编写 js 代码,使用 for in 遍历,逐行输出 key 与 value 值,每条记录格式“key:value”。(208点数解答 | 2024-05-20 22:15:55)280
- 编写 js 代码,使用 while 循环,实现 1 到 100 相加,将结果输出到页面。(47点数解答 | 2024-05-20 22:16:48)225
- 编写 js 代码,定义数组变量 mycars,存储"saab", "volvo", "bmw"三个元素(21点数解答 | 2024-05-20 22:18:13)212
- 补全 js 代码,获得数组中的长度,使用 for 循环逐行输出内容。 var mycars = ["saab", "volvo", "bmw"]; var len =(28点数解答 | 2024-05-20 22:19:37)267