Python-项目实战--贪吃蛇小游戏(1)
创始人
2024-05-25 15:00:36
0

1.贪吃蛇游戏规则

贪吃蛇游戏规则如下:

1.1开始和结束

  • 贪吃蛇初始出现在游戏窗口的左上角位置,体长共有3节

  • 游戏过程中,一旦蛇头撞到了窗口的边缘或者身体的其他部位,游戏结束

  • 游戏过程中,点击游戏窗口的关闭按钮,或者按下ESC键可以直接退出游戏

  • 一局游戏结束后,按下空格键可以重新开启一局新游戏

1.2运动和控制

  • 贪吃蛇初始沿屏幕水平方向,向右侧运动,每隔0.5秒移动一节身体

  • 使用键盘的方向键(⬆⬇⬅➡)可以改变蛇头的运动方向,

注意:

  • 当蛇头沿水平方向运动时,只能使用垂直方向的方向键将蛇头的运动方向修改为垂直方向

  • 当蛇头沿垂直方向运动时,只能使用水平方向的方向键将蛇头的运动方向修改为水平平向

  • 游戏过程中按下空格键,可以暂停游戏;再次按下空格键,可以继续游戏

1.3食物和得分

  • 游戏开始后,会在游戏窗口的任-一随机位置出现食物

  • 注意:食物不会与蛇身体重叠

  • 当蛇头与食物相遇时,代表蛇吃到了食物,此时:

  • 被吃掉的食物从屏幕上消失

  • 蛇的身体会增加一节

  • 游戏得分增加10分

  • 在游戏窗口的其他任一随机位置再次出现新的食物,食物同样不会与蛇身体重叠

  • 如果食物出现的30秒内,贪吃蛇没有吃到食物,那么:

  • 没有被吃到的食物从屏幕上消失

  • 在游戏窗口的其他任一随机位置再次出现新的食物,食物同样不会与蛇身体重叠

  • 每吃掉1颗食物,贪吃蛇的运动速度会加快:

  • 初始每隔0.5秒移动一节身体

  • 每吃掉1颗食物,移动的时间间隔缩短50ms,也就是: 0.45s、0.40s、0.35s等依次类推

  • 最短的移动时间间隔是0.1秒

2.类的设计和模块准备

2.1类的设计

根据游戏规则,要实贪吃蛇游戏,一共需要4种对象,分别是:游戏对象、蛇对象、食物对象和文字标签对象

除游戏对象外,其他3种对象在游戏窗口中的展现效果示意图如下:

因此我们可以考虑设计4个类,分别承担不同的职责:

  • 游戏类(Game) : 负责提供整个游戏流程控制的相关操作,包括:

  • 创建游戏主窗口和游戏时钟

  • 创建并显示游戏元素:蛇、食物、得分标签、提示标签。

  • 监听用户交互并做出相应处理

  • 标签类(Label) :负责提供文本提示信息的相关操作

  • 食物类(Food) :负责提供食物对象的相关操作

  • 蛇类(Snake) :负责提供蛇对象相关操作

类图如下:

2.2模块的确定和准备

  • 根据类的设计,在贪吃蛇游戏项目中设计2个模块,分别是:

  • game.py 游戏主模块 封装Game类并负责启动游戏

  • game_items.py 游戏元素模块,封装模块Label、Food、Snake类,并定义全局变量

新建项目及文件准备

  • 使用pycharm新建一个项目:

  • 项目名称:贪吃蛇

  • 解释器:python 3.9.13

  • 在项目中依次建立2个模块:game.py 和 game_items.py

内容总结于:https://space.bilibili.com/441640380

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...