Python贪吃蛇游戏代码:入门教程及玩法介绍
"""import pygame\nimport random\n\n# 初始化游戏\npygame.init()\n\n# 游戏窗口尺寸\nwindow_width = 600\nwindow_height = 400\n\n# 定义颜色\nwhite = (255, 255, 255)\nblack = (0, 0, 0)\nred = (255, 0, 0)\n\n# 定义蛇的大小和速度\nsnake_size = 10\nsnake_speed = 15\n\n# 初始化游戏窗口\nwindow = pygame.display.set_mode((window_width, window_height))\npygame.display.set_caption('贪吃蛇')\n\nclock = pygame.time.Clock()\n\n# 定义字体\nfont_style = pygame.font.SysFont(None, 30)\nscore_font = pygame.font.SysFont(None, 50)\n\n# 显示得分\ndef show_score(score):\n score_text = score_font.render("得分:" + str(score), True, black)\n window.blit(score_text, [10, 10])\n\n# 绘制蛇\ndef draw_snake(snake_size, snake_list):\n for x in snake_list:\n pygame.draw.rect(window, black, [x[0], x[1], snake_size, snake_size])\n\n# 游戏结束\ndef game_over():\n message = font_style.render("游戏结束", True, red)\n window.blit(message, [window_width/2 - 100, window_height/2 - 50])\n\n# 主函数\ndef game():\n game_over = False\n game_close = False\n\n # 初始位置\n x1 = window_width / 2\n y1 = window_height / 2\n\n # 初始移动方向\n x1_change = 0\n y1_change = 0\n\n # 蛇的身体\n snake_list = []\n snake_length = 1\n\n # 随机生成食物的位置\n foodx = round(random.randrange(0, window_width - snake_size) / 10.0) * 10.0\n foody = round(random.randrange(0, window_height - snake_size) / 10.0) * 10.0\n\n # 游戏循环\n while not game_over:\n while game_close:\n window.fill(white)\n game_over()\n show_score(snake_length - 1)\n pygame.display.update()\n\n # 点击窗口关闭按钮或按下q键退出游戏\n for event in pygame.event.get():\n if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_q):\n game_over = True\n game_close = False\n\n # 按下空格键重新开始游戏\n if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:\n game()\n\n # 移动蛇的位置\n for event in pygame.event.get():\n if event.type == pygame.QUIT:\n game_over = True\n if event.type == pygame.KEYDOWN:\n if event.key == pygame.K_LEFT:\n x1_change = -snake_size\n y1_change = 0\n elif event.key == pygame.K_RIGHT:\n x1_change = snake_size\n y1_change = 0\n elif event.key == pygame.K_UP:\n y1_change = -snake_size\n x1_change = 0\n elif event.key == pygame.K_DOWN:\n y1_change = snake_size\n x1_change = 0\n\n # 检查是否撞到墙壁\n if x1 >= window_width or x1 < 0 or y1 >= window_height or y1 < 0:\n game_close = True\n\n # 更新蛇的位置\n x1 += x1_change\n y1 += y1_change\n window.fill(white)\n pygame.draw.rect(window, red, [foodx, foody, snake_size, snake_size])\n snake_head = []\n snake_head.append(x1)\n snake_head.append(y1)\n snake_list.append(snake_head)\n if len(snake_list) > snake_length:\n del snake_list[0]\n\n # 检查是否撞到自己的身体\n for x in snake_list[:-1]:\n if x == snake_head:\n game_close = True\n\n # 绘制蛇和食物\n draw_snake(snake_size, snake_list)\n show_score(snake_length - 1)\n\n pygame.display.update()\n\n # 检查是否吃到食物\n if x1 == foodx and y1 == foody:\n foodx = round(random.randrange(0, window_width - snake_size) / 10.0) * 10.0\n foody = round(random.randrange(0, window_height - snake_size) / 10.0) * 10.0\n snake_length += 1\n\n clock.tick(snake_speed)\n\n pygame.quit()\n\n# 运行游戏\ngame()\n"""\n你可以复制上面的代码并在Python环境中运行,即可开始玩贪吃蛇游戏。使用方向键控制蛇的移动,吃到食物会增加得分并使蛇变长,如果蛇撞到墙壁或自己的身体,则游戏结束。
原文地址: https://www.cveoy.top/t/topic/qk60 著作权归作者所有。请勿转载和采集!