C课程设计——贪吃蛇.doc

上传人:scccc 文档编号:13786753 上传时间:2022-01-23 格式:DOC 页数:9 大小:84KB
返回 下载 相关 举报
C课程设计——贪吃蛇.doc_第1页
第1页 / 共9页
C课程设计——贪吃蛇.doc_第2页
第2页 / 共9页
C课程设计——贪吃蛇.doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C课程设计——贪吃蛇.doc》由会员分享,可在线阅读,更多相关《C课程设计——贪吃蛇.doc(9页珍藏版)》请在三一文库上搜索。

1、迷宫贪吃蛇用户签名开发成员:开发时间:2009年12月7日目录0.引言(3)1. 工作计划(3)主要任务阶段划分( 3)工作任务分工( 3)2. 需求分析(4)概述(4)用户分析(4)约束条件(4)功能需求(4)用户界面需求(5)3. 设计与实现 (5)概述 (5)详细设计(5)类的抽象与设计 (5)主要程序文件(6)开发环境以及部署环境要求 (8)主要源码 (8)4. 测试 (12)概述(12)测试环境(12)测试计划(12)测试项目及结果 (12)5. 工作总结 (13)工作成果(13)过程分析(13)经验教训及其分析(13)0引言由于传统的贪吃蛇只是在一个宽阔的用户区进行游戏。对于蛇只是

2、在区域四周有障碍 墙壁,这样也许在一开始不会有太大的难度和成就感。又由于人们曾经也钟爱一种迷宫游戏,它主要是考察玩家的观察力,看能否在最短的时间里走出迷宫。基于以上两个游戏,我们准备利用本学期学到的windows界面程序设计方法将两个游戏有机结合起来,使用户既能体验贪吃蛇中看着蛇身不断加长而绕出各种折线的成就感,又能感受到在迷宫中找寻出路的紧张心情,而且迷宫的出现使蛇遇到的障碍遍布游戏区,这样用户就更能展示一下自己操作的高水平。1工作计划主要工作阶段划分项目名称时间安排需求分析设计与实现测试与维护工作任务分工阶段名称任务名称任务描述负责人协助人需求分析现有游戏的分析对现有的贪吃蛇游戏进行分析:

3、趣味性分析对游戏的趣味性、休闲性分析功能需求对游戏的功能、方式进行分析设计与实现系统结构设计游戏的功能、结构分析界面设计用户与游戏交互的设计编码实现具体的编程实现测试与维护功能测试对游戏的功能进行测试性能测试对游戏的性能进行测试2 需求分析概述本人进行了对现有游戏代码的分析,借鉴了其中的部分实现思想,进而在组内进行讨 论,根据我们的需求参与了程序中两个主要类的设计及类中接口的功能定义。并实现了 CTable 类的代码;实现了对游戏界面框架的部分搭建,诸如对话框的实现等均有本人根据自己的现有知 识,再加上网上查些信息、查看 MSDN 进行编写,而实现的接口则预留出来等待后期的具 体核心代码来调用

4、;对游戏进行了测试,发现了问题并通过老师的帮助进行了解决。用户分析1. 该游戏至少支持贪吃蛇的基本玩法, 创新可以有, 但贪吃蛇游戏的经典玩法是不能少 的;2. 该游戏对键盘输入要有较快的反应速度;3. 该游戏界面要漂亮一些;4. 该游戏要支持速度选择;5. 该游戏运行要比较稳定。约束条件1. 该游戏比较简单,要求在一周进行进行完从分析到设计到编码再到测试;2. 提交游戏要有相应的文档。功能需求1. 贪吃蛇的基本玩法:即可以用上、下、左、右键控制游戏区蛇的运动方向,使之向着 食物方向运动,并吞吃食物使身体增长;2. 调节蛇的运动速度:即用户可以调节蛇的运动速度来选择不同的难度;3. 选择关卡功

5、能:即游戏分多个难度级别(关卡),用户可以选择不同的难度级别进行游戏;4. 背景颜色变换功能: 即用户可以选择一种自己喜欢的颜色作为游戏区的背景色, 避免 对一种颜色产生视觉疲劳。用户界面需求1. 选择速度和关卡最好不用人手工输入,只是用鼠标点一点2界面的有些东西最好可变,不要总是一种界面,让用户自己选择也可以。3设计与实现概述1界面的设计只是体力活和个人审美的问题,没有什么深奥的问题。虽说本游戏比较简单,但也是有其核心思想的。2本游戏的核心代码即处理蛇的运动吃食的思路是:把游戏区纵横分成许多小方格,每一个小方格的属性可以是蛇身、食物、空白、墙壁几个属性之一。蛇运动时用一个数组结构记录蛇的各个

6、蛇身所处的小方格坐标,通过对坐标的处理使蛇的位置不断变化,反应在游戏区中即蛇在不断运动。详细设计类的抽象及设计基于需求的分析,该游戏主要由两个类构成:蛇类用于处理蛇的运动等操作;桌子类 用于对桌面上的墙、蛇、食物进行控制。class CSnakeprivate :int m_length; = m_pNewPosi.x;m_pOldPosi.y = m_pNewPosi.y;-;break;case S_DOWN:m_pNewPos0.y +;break;case S_LEFT:m_pNewPos0.x +;break ; case S_RIGHT:m_pNewPos0.x -; break

7、;int m = m_pNewPos0.x;int n = m_pNewPos0.y;int iObject = GetData(m, n); = m_pOldPosi - 1.x; m_pNewPosi.y = m_pOldPosi - 1.y; = m_pOldPosi - 1.x;m_pNewPosi.y = m_pOldPosi - 1.y;return FOOD;break ;case WALL: ;int n = ()i.y;m_boardnm = EMPTY;if (+ iFirst = 0) ;int y = ()0.y;m_boardyx = SNAKE; break ;ca

8、se FOOD: ;int y = ()0.y;m_boardyx = SNAKE;AddFood();break ;case WALL:case SNAKE: ;int n = ()i.y; m_boardnm = SNAKE; = m_pNewPosi.x;temp1i.y = m_pNewPosi.y; delete m_pNewPos;SPoint* temp2;temp2 = newSPointm_length + 100; for ( int i = 0; i m_length; i +) temp2i.x = m_pOldPosi.x; temp2i.y = m_pOldPosi

9、.y;delete m_pOldPos;m_pOldPos = temp2;elsereturn ;4测试概述1测试速度选择菜单是否可以正常使用并对游戏效果产生需求所要求的影响;2测试背景色选择菜单是否可以正常使用并对游戏效果产生需求所要求的影响;3测试难度级别菜单是否可以正常使用并对游戏效果产生需求所要求的影响;4测试游戏是否可以正常操作5测试游戏是否有较好的响应速度。测试环境个人笔记本电脑一台,windowsXP操作系统;1G内存。测试计划1. 对基本的菜单功能进行测试:点击相应菜单,看是否能够进行正确的响应并对游戏进 行了预期的设置;2. 对对话框的测试,打开对话框,对对话框内的控件进行

10、点击测试,看是否能够正确响 应并对游戏进行预期的设置;3. 对游戏控制键的测试:开始游戏,用键盘对游戏进行控制测试,看游戏是否及时正确 处理键盘输入事件;4. 对游戏整体测试:进行每一关的游戏测试,看是否能正确进入相应关卡并正确运行, 看违反游戏规则时游戏是否会结束;5. 对游戏占用内存的测试: 运行游戏,看游戏占用的内存资源是否处于一个稳定的范围 内,以此测试游戏是否有申请内存没有释放的问题。测试项目及结果测试项目测试结果基本菜单的测试菜单可以正确响应并对游戏进行正确设置基本对话框功能的测试对话框可以正确响应并对游戏进行正确设置游戏控制键的测试控制键响应比较及时并正确对游戏设置整体测试各个关

11、卡功能正常内存测试内存占用随时间增加,说明有内存分配问题5、工作总结工作成果首先我进行了对现有游戏的算法分析,借鉴其中的部分实现思想为我们小组所用,参 与了对我们游戏的整体分析设计,即两个主要类的设计定义;其次我实现了 CTable 类的代码; 再次,在游戏运行框架上,我结合自己的知识和查阅 MSDN ,对窗口部件中的各对话 框进行了编码实现,当然包括其中的通用对话框颜色对话框;最后,在后期测试中,我也对游戏进行了测试,同组内人员共同发现了游戏对内存的 消耗问题并努力进行解决。过程分析在一周的时间内,我们通过查阅资料,结合自己所学,对游戏的整体进行了分析设计 实现测试并取得了较为理想的结果,这

12、首先与课堂上老师讲授的知识和方法是密不可分的。其次,我认为我们能做好这个游戏,也在于我们为了达到目的而自己学习老师没有教 的知识并及时消化吸收运用到实践中;再次,游戏的代码是我们小组合作完成的,这与我们的密切合作,相互沟通是分不开 的,这更对我们自己的团队合作方面是一个很好的锻炼。经验教训及其分析1.由于时间有限,前期提出的一些想法和创新点未能最终实现,这确实是一个遗憾;2. 代码的编写不够规范,造成在交换工作成果时有时存在程序理解上的困难。这使得我 们真正意识到编程规范的重要性,以督促我们在以后的学习中注意到这一点,学习并提高。3. 编程过程中有时对程序考虑还是欠佳,以至于在代码调试过程中没有语法错误,但运 行总是不对, 最后究其原因总是比较低级的错误。 这使我们意识到编程中头脑中一定要对全 局有把握并且在局部一定要细心考虑。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1