C++课程设计报告(贪吃蛇游戏)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++程序课程设计贪吃蛇游戏
姓名:XXXX
学号:XXXXXX
指导教师:XXXX
提交日期:2XXXXX
目录
C++程序课程设计 (1)
第一章课题介绍 (2)
1.1选题背景 (3)
1.2关于编译软件 (3)
1.3关于兼容性 (4)
第二章设计概要 (4)
2.1程序功能简介 (4)
2.2程序流程 (4)
第三章游戏实现 (5)
3.1创建工程 (5)
3.2游戏界面控制 (7)
3.2.1墙、框体的绘制 (7)
3.2.2蛇身的绘制 (8)
3.2.3食物的绘制 (9)
3.3游戏控制 (11)
3.3.1蛇的移动 (11)
3.3.2蛇死亡的判断 (13)
3.3.3消息窗口的弹出 (13)
3.3.3.1开始消息框 (13)
3.3.3.2关卡消息框 (14)
3.3.3.3结束消息框 (15)
3.3.4游戏音效 (16)
第四章结果与讨论 (17)
4.1程序运行 (17)
4.2对源程序的改进 (18)
4.3错误调试与分析 (18)
4.3.1关于窗口的重画问题 (18)
4.3.2关于双音轨的问题 (18)
4.3.3程序的稳定性 (19)
4.4课程设计心得与体会 (19)
附录 (21)
第一章课题介绍
1.1选题背景
蛇------传说中的圣灵之物,仰头为神、俯首为魔。蛇是月亮国膜拜的神,月亮国的子民们都认为蛇是万能的主宰派来保护他们的守护者。蛇在这个岛屿就像空气一样自然的出现在各个角落,有些还成为居民的宠物,陪伴孩子长大,和年轻人一起去探险,守护着散步的老人。在善良的女娟神保佑下,人们的生活安宁平静。为了答谢女娟的庇佑,每年月亮国的国民都会举办一个守护蛇大赛,大家都会拿出自己最强、最炫、最快、最稀有的蛇来参加比赛,获得第一名的人将得到国王的特别嘉奖。所以国民一生都在不断的培养更有威力、更长、更壮的蛇。" 贪吃蛇" 是一个产生于1970 年代中后期的计算机游戏,也叫蛇吃豆。
该游戏在1990 年代由于一些手机将其引入而一时间再度流行起来。在游戏中,玩家操控一条细长的蛇爬行于一个带边界的平面之上,一路拾起触碰到之事物或其它类似的物件,并要避免触碰到自身或者包围着游戏区的"墙"。每次贪吃蛇吃掉一件食物,它的身体便增长一些,这让游戏的难度渐渐变大。操控贪吃蛇时,玩家操控贪吃蛇的头部的朝向(向上、向下、向左或向右)控制贪吃蛇的进行方向,贪吃蛇的身体将跟随着其头部行进。另外,玩家不可在游戏中途停止贪吃蛇的进行。随着贪吃蛇的成功移植到手机系统,贪吃蛇的操作按键要求与手机按键的完美匹配,使贪吃蛇游戏风靡起来。
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。
1.2关于编译软件
本程序采用Microsoft Visual C++6.0的中文版本进行编译。Visual C++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于其良好的界面和可操作
性,加上支持标准C/C++规范,但仍有相当多的编程人员使用Visual C++6.0进行应用系统的开发。
1.3关于兼容性
本程序经过调试,可以在XP系统下编译运行,也可以在Vista/Win 7下运行,界面稍有不同,但不影响运行结果。
第二章设计概要
2.1程序功能简介
据分析,贪吃蛇游戏一共要实现如下几个功能:
➢开始运行
➢蛇在上下左右键的操作下运动
➢闯关设置
➢游戏音效
➢游戏说明
2.2程序流程
根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程(图1)。
贪吃蛇的内容主要包括:
开始游戏,随机出现食物,控制蛇的运动,吃食物,关卡处的消息询问,游戏音效的播放,分数的输出,游戏帮助的输出等等。
图1.流程图
第三章游戏实现
3.1创建工程
本程序使用Win32 Application工程,编辑在Windows窗口中打开的应用程序。由于之前没有接触过这类工程,所以我在短短几天内笼统的学习了一些相关的基本知识。在程序的编写过程中,遇到了很多问题,通过查阅资料和请教别人,解决了很多问题,但是仍然有遗留的未解决的问题,所以本程序虽然实现了大部分功能,但不是很完善,需要在将来的学习过程中逐渐改进。
图2.创建Win32 Application工程
Win32 Application工程与Win32 Console Application工程有很大的不同(图2)。其主函数是WinMain()函数。创建一个经典的”Hello,World!”工程,就会有已经写
好的WinMain()函数。WinMain()函数是整个程序的入口,虽然区区几行。不需要
改动什么,但确实最主要的函数。函数定义如下:
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
在创建好的工程中,还有注册窗口函数和窗口过程函数。
ATOM MyRegisterClass(HINSTANCE hInstance)
注册窗口函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
窗口过程函数
实现贪吃蛇游戏的算法就写在窗口过程函数中。