当前位置: 首页 > news >正文

Python编写的贪吃蛇小游戏

安装包

pip install pygame

完整代码

import pygame
import randompygame.init()# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)# 定义屏幕大小
dis_width = 800
dis_height = 600dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('贪吃蛇游戏')clock = pygame.time.Clock()snake_block = 10
snake_speed = 5font_style = pygame.font.SysFont(None, 50)def message(msg, color):mesg = font_style.render(msg, True, color)dis.blit(mesg, [dis_width / 6, dis_height / 3])def gameLoop():  # 创建一个循环游戏game_over = Falsegame_close = Falsex1 = dis_width / 2y1 = dis_height / 2x1_change = 0y1_change = 0snake_List = []Length_of_snake = 1foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0while not game_over:while game_close == True:dis.fill(blue)message("游戏结束! 按Q退出或C继续", red)pygame.display.update()for event in pygame.event.get():if event.type == pygame.KEYDOWN:if event.key == pygame.K_q:game_over = Truegame_close = Falseif event.key == pygame.K_c:gameLoop()for event in pygame.event.get():if event.type == pygame.QUIT:game_over = Trueif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:x1_change = -snake_blocky1_change = 0elif event.key == pygame.K_RIGHT:x1_change = snake_blocky1_change = 0elif event.key == pygame.K_UP:y1_change = -snake_blockx1_change = 0elif event.key == pygame.K_DOWN:y1_change = snake_blockx1_change = 0if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:game_close = Truex1 += x1_changey1 += y1_changedis.fill(black)pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])snake_Head = []snake_Head.append(x1)snake_Head.append(y1)snake_List.append(snake_Head)if len(snake_List) > Length_of_snake:del snake_List[0]for x in snake_List[:-1]:if x == snake_Head:game_close = Truefor x in snake_List:pygame.draw.rect(dis, white, [x[0], x[1], snake_block, snake_block])pygame.display.update()if x1 == foodx and y1 == foody:foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0Length_of_snake += 1clock.tick(snake_speed)pygame.quit()quit()gameLoop()

实现效果,通过键盘上下左右控制蛇的移动


http://www.mrgr.cn/news/41678.html

相关文章:

  • 文章解读与仿真程序复现思路——高电压技术EI\CSCD\北大核心《适用于并联构网型储能系统的协调有功控制策略设计》
  • ICM20948 DMP代码详解(57)
  • 【Python】ftfy 使用指南:修复 Unicode 编码问题
  • 开国纪念邮票:定格瞬间,见证辉煌
  • Llama3.2开源:Meta发布1B和3B端侧模型、11B和90B多模态模型
  • 基础岛第6关:OpenCompass 评测 InternLM-1.8B 实践
  • HTML增加复制模块(使用户快速复制内容到剪贴板)
  • 【性能测试】jmeter测试时查看结果树返回结果中文显示问题
  • 【递归】12. leetcode 1448 统计二叉树中好节点的数目
  • 西安做网站如何打造出色的企业网站
  • 【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点
  • Crawl4AI - LLM 友好的异步爬虫工具
  • python之输入输出
  • ISA-95制造业中企业和控制系统的集成的国际标准-(5)
  • Spring Boot 和 MyBatis-Plus凑一块儿了,这份教程你得看
  • OpenAI 开发者大会2024
  • 基于Python的人工智能应用案例系列(18):SpaCy简历信息抽取
  • Java 中的 PO、VO、DAO、BO、DTO、POJO
  • FTP应用篇:低功耗4G模组Air780EP AT开发
  • 你了解最快的锁机制吗?——看完你就懂了!