当前位置: 首页 > 建站教程

怎么用python实现一个简单的贪吃蛇游戏

时间:2026-01-30 13:27:10

下面是一个简单的贪吃蛇游戏的Python实现代码示例:

import pygameimport timeimport randompygame.init()# 设置窗口大小win_width = 800win_height = 600win = pygame.display.set_mode((win_width, win_height))pygame.display.set_caption("贪吃蛇游戏")# 设置颜色black = (0, 0, 0)white = (255, 255, 255)red = (255, 0, 0)# 设置蛇和食物初始位置snake_block = 10snake_speed = 15snake_pos = [(win_width//2, win_height//2)]food_pos = (random.randint(0, win_width//snake_block - 1) * snake_block, random.randint(0, win_height//snake_block - 1) * snake_block)# 初始化方向x_change = 0y_change = 0# 游戏主循环run = Truewhile run:for event in pygame.event.get():if event.type == pygame.QUIT:run = Falseif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:x_change = -snake_blocky_change = 0elif event.key == pygame.K_RIGHT:x_change = snake_blocky_change = 0elif event.key == pygame.K_UP:x_change = 0y_change = -snake_blockelif event.key == pygame.K_DOWN:x_change = 0y_change = snake_block# 更新蛇的位置new_pos = (snake_pos[0][0] + x_change, snake_pos[0][1] + y_change)snake_pos.insert(0, new_pos)# 检查蛇是否吃到食物if snake_pos[0] == food_pos:food_pos = (random.randint(0, win_width//snake_block - 1) * snake_block, random.randint(0, win_height//snake_block - 1) * snake_block)else:snake_pos.pop()# 绘制窗口win.fill(black)for pos in snake_pos:pygame.draw.rect(win, white, (pos[0], pos[1], snake_block, snake_block))pygame.draw.rect(win, red, (food_pos[0], food_pos[1], snake_block, snake_block))pygame.display.update()# 控制蛇的速度pygame.time.Clock().tick(snake_speed)# 退出游戏pygame.quit()

这段代码实现了一个简单的贪吃蛇游戏,玩家可以通过方向键控制蛇的移动方向,吃到食物会增加蛇的长度,如果蛇撞到墙壁或者撞到自己就会游戏结束。希望对你有帮助!


上一篇:JS怎么生成某个范围的随机数
下一篇:C# CheckedListBox控件怎么使用
python
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素