Python 贪吃蛇游戏代码示例 - 简单易懂
以下是一个使用Python编写的简单贪吃蛇游戏的示例代码:\n\npython\nimport pygame\nimport time\nimport random\n\npygame.init()\n\n# 设置游戏窗口的宽度和高度\nwindow_width = 800\nwindow_height = 600\n\n# 设置蛇身和食物的大小\nsnake_size = 20\nfood_size = 20\n\n# 设置蛇移动的速度\nsnake_speed = 15\n\n# 定义颜色\nblack = pygame.Color(0, 0, 0)\nwhite = pygame.Color(255, 255, 255)\nred = pygame.Color(255, 0, 0)\ngreen = pygame.Color(0, 255, 0)\nblue = pygame.Color(0, 0, 255)\n\n# 创建游戏窗口\ngame_window = pygame.display.set_mode((window_width, window_height))\npygame.display.set_caption('贪吃蛇小游戏')\n\n# 定义游戏结束的函数\ndef game_over():\n pygame.quit()\n quit()\n\n# 定义贪吃蛇的函数\ndef snake_game():\n # 初始化贪吃蛇的位置\nsnake_position = [100, 50]\nsnake_body = [[100, 50], [90, 50], [80, 50]]\n \n # 初始化食物的位置\nfood_position = [random.randrange(1, (window_width // snake_size)) * snake_size,\n random.randrange(1, (window_height // snake_size)) * snake_size]\n food_spawn = True\n \n # 初始化方向和分数\ndirection = 'RIGHT'\nchange_to = direction\nscore = 0\n \n # 游戏主循环\n while True:\n # 检测键盘事件\n for event in pygame.event.get():\n if event.type == pygame.KEYDOWN:\n if event.key == pygame.K_UP:\n change_to = 'UP'\n if event.key == pygame.K_DOWN:\n change_to = 'DOWN'\n if event.key == pygame.K_LEFT:\n change_to = 'LEFT'\n if event.key == pygame.K_RIGHT:\n change_to = 'RIGHT'\n \n # 根据方向移动贪吃蛇的位置\n if change_to == 'UP' and direction != 'DOWN':\n direction = 'UP'\n if change_to == 'DOWN' and direction != 'UP':\n direction = 'DOWN'\n if change_to == 'LEFT' and direction != 'RIGHT':\n direction = 'LEFT'\n if change_to == 'RIGHT' and direction != 'LEFT':\n direction = 'RIGHT'\n \n if direction == 'UP':\n snake_position[1] -= snake_size\n if direction == 'DOWN':\n snake_position[1] += snake_size\n if direction == 'LEFT':\n snake_position[0] -= snake_size\n if direction == 'RIGHT':\n snake_position[0] += snake_size\n \n # 更新贪吃蛇的身体\nsnake_body.insert(0, list(snake_position))\n if snake_position[0] == food_position[0] and snake_position[1] == food_position[1]:\n score += 1\n food_spawn = False\n else:\n snake_body.pop()\n \n # 重新生成食物\n if not food_spawn:\n food_position = [random.randrange(1, (window_width // snake_size)) * snake_size,\n random.randrange(1, (window_height // snake_size)) * snake_size]\n food_spawn = True\n \n # 绘制游戏窗口\ngame_window.fill(black)\n for pos in snake_body:\n pygame.draw.rect(game_window, green, pygame.Rect(pos[0], pos[1], snake_size, snake_size))\n pygame.draw.rect(game_window, white, pygame.Rect(food_position[0], food_position[1], food_size, food_size))\n \n # 检测碰撞\n if snake_position[0] >= window_width or snake_position[0] < 0:\n game_over()\n if snake_position[1] >= window_height or snake_position[1] < 0:\n game_over()\n for block in snake_body[1:]:\n if snake_position[0] == block[0] and snake_position[1] == block[1]:\n game_over()\n \n # 更新分数\n pygame.display.update()\n \n # 设置游戏速度\n clock = pygame.time.Clock()\n clock.tick(snake_speed)\n\n# 运行游戏\nsnake_game()\n\n\n这个示例代码使用了Pygame库来创建游戏窗口和处理游戏事件。贪吃蛇的身体和食物都是由矩形表示的,通过检测键盘事件来改变贪吃蛇的移动方向,并实时更新游戏窗口中的贪吃蛇和食物位置。游戏会在贪吃蛇碰到边界或自身时结束,并根据吃到的食物数量计算分数。\n
原文地址: https://www.cveoy.top/t/topic/qyfz 著作权归作者所有。请勿转载和采集!