- 14
- 0
- 约1.05万字
- 约 21页
- 2018-10-09 发布于重庆
- 举报
C课程设计:贪吃蛇游戏
课 程 设 计 报 告
课程名称:面向对象程序设计C++
设计题目:用C++实现贪吃蛇游戏
专 业:计算机科学与技术
姓 名:
学 号:
指导教师:李 晓 虹
2015 年 1 月 6 日
系统需求分析
1.1 选题背景
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我们的编程能力不是很强,但是我们有信心,在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此我们选定了这个题目。
1.2 关于编译软件
本程序采用Microsoft Visual C++6.0的英文版本进行编译。VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准C/C++规范,但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。
1.3 关于兼容性
本程序经过调试,可以在XP系统下编译运行,也可以在Vista下运行,界面稍有不同,但不影响运行结果。
总体设计
设计要求
贪吃蛇算法?
程序要求:游戏时,一条蛇在密闭的围墙内,?围墙内会随机出现一个食物通过键盘上的4个光标键控制蛇向上下左右4个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计10分。接着又出现食物等待被蛇吃掉。如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),则游戏结束。
软件主要功能设计
程序结构
根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、停止游戏,设置游戏级别(速度),设置图片等。具体的程序结构如下面的图1-1所示。
贪吃蛇游戏开始
贪吃蛇
游戏开始
游戏设置
游戏结束
开始
初级
中级
高级
结束
程序流程
根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物。
载入游戏并初始化
载入游戏并初始化
判断是否开始
蛇开始移动
根据键盘控制蛇移动方向
判断蛇头和食物的坐标是否重合
随机生成下一个食物
判断蛇头和自身及墙、毒果是否重合
游戏结束
设置菜单
选择游戏级别
判断选择级别
初级
中级
高级
退出
否
否
是
是
是
否
图2-2 贪吃蛇流程图
详细设计
界面设计
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小@表示蛇的一节身体,身体每长一节,增加一个@。移动时必须从蛇头开始,如果不按任何键,蛇自行在当前方向右前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,在界面中央有个静止不动的食物,用户通过键盘来控制蛇的走向,当蛇吃到食物时,分数增加十分,界面开始更新,蛇的身体增加一节,食物的位置变化一次,当蛇碰到界面时,游戏自动结束,显示用户最后的分数。
数据结构设计
snack.h文件及类的设计如表3.1所示。
表3.1
1 Cmp类的设计。
class Cmp
{
friend class Csnake;
int rSign; //横坐标
int lSign; //竖坐标
public:
// friend bool isDead(const Cmp cmp);
Cmp(int r,int l){setPoint(r,l);}
Cmp(){}
void setPoint(int r,int l){rSign=r;lSign=l;}
Cmp operator-(const Cmp m)const
{
return Cmp(rSign-m.rSign,lSign-m.lSign);
}
Cmp operator+(const Cmp m)const
{
return Cmp(rSign+m.rSign,lSign+m.lSign);
}
};
const int maxSize = 5; //初始蛇身长度
2 Csnake类的设计。
class Csnake
{
Cmp firstSign; //蛇头坐标
Cmp secondSign;//蛇颈坐标
Cmp lastSign; //蛇尾坐标
Cmp nextSign; //预备蛇头
int row; //列数
int line; //行数
int co
您可能关注的文档
- Capital Budgeting Basics Instructors Manual资本预算的基础,教师手册.doc
- CARS光谱测温技术应用于燃油炉火焰温度场的测量.doc
- Case study of strategic human resource management in 战略人力资源管理的案例研究.doc
- CCC认证工厂检查员培训教材教学指导书.doc
- CCC中国强制认证检测费收费标准.doc
- CCC认证质量体系文件质量手册.doc
- CBD项目投资决策风险的识别与评价研究 毕业论文.doc
- CCD视频信号的处理和计算机采集装置-硬件设计.doc
- CCNA CCNP CCE Pre Lab 教学大纲费.doc
- CCTV的“储备能源库”中央电视台中国广播电视音像资料馆磁带库系统建设侧记.doc
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
最近下载
- 贵州省六盘水市2022-2023学年高二下学期期末教学质量监测数学试卷(含答案).docx VIP
- 射击学理简介.ppt VIP
- 四人剧本杀:无间旅途全篇剧本(四人封闭环境).pdf VIP
- 商标侵权判定培训课件.pptx VIP
- 信捷x-sight视觉系统使用手册v2.1a.pdf
- 2026 年新版三至五年级上册语文期末考试试题及答案.docx
- (高清版)B-T 4942-2021 旋转电机整体结构的防护等级(IP代码) 分级.pdf VIP
- 牛羊生产 羊生产 羊的育肥技术.ppt VIP
- 表--乙二醇二甲醚的理化性质及危险特性.doc VIP
- 单位物业服务采购项目服务方案投标文件(技术方案).doc
原创力文档

文档评论(0)