《贪吃蛇总结》由会员分享,可在线阅读,更多相关《贪吃蛇总结(11页珍藏版)》请在金锄头文库上搜索。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划贪吃蛇总结贪吃蛇设计综合实验总结报告课程名称:程序设计实践选题名称:贪吃蛇小组长姓名:方娟XX小组成员姓名:邹甜XX杜家萱XX任课老师:伊乾报告递交时间:一系统功能说明贪食蛇游戏是一个深受人们喜爱的游戏:一条蛇在密闭的围墙内,在围墙内出现食物,通过按键控制蛇向上下左右四个方向移动,蛇撞到食物,则食物被吃掉,蛇的身体增加一节。如果蛇在移动的过程中,撞到墙壁或身体的交叉游戏结束。现要求利用Turbo来实现该游戏。功能要求如下:一、基本功能1.提供一个图形模式下的界面。2.开始游戏:空格键
2、或回车键;退出游戏:Esc键。3.支持用键盘的方向键来控制蛇的移动,蛇可以向上、下、左、右四个方向移动。4.当蛇头碰到食物时,食物被吃掉,蛇的身体增长一节。5.初始场景内随即出现1个食物,当食物被吃掉时,再随机出现一个食物。6.要有记分机制,没吃掉一个食物,增加相应的分数。7.蛇碰到墙壁或是自己身体的一部分则游戏结束。二、高级功能1.暂停功能:能随时通过按键来暂停游戏,再按一次则继续游戏。2.速度调节功能:当分数达到某个值后,对蛇的移动速度进行一定的提升,但会有一个速度上限。3.奖励机制:增加另一种的奖励食物,蛇吃到该种食物后蛇的身体减少一节,但不增加分数。该种食物的颜色要区别与普通食物的颜色
3、。奖励食物有时间限制,在一定时间内没有吃掉则会消失。4.音效功能:在游戏开始、吃掉食物、撞墙、撞到自己时提供不同的音效。二程序结构重要数据说明基本思路:首先设计主界面,主界面是一个密封的围墙,并在屏幕最右面留一部分用来显示分数、计时等其他信息。围墙直接画一个矩形来表示,四面围成密闭的矩形来作为围墙。接着是初始化蛇与食物的位置并将他们用图形表示出来。然后进行一个循环,将蛇按当前的方向移动,并处理键盘的方向按键信息,调整蛇的移动方向。蛇头如果碰到食物,则食物消失,蛇身增长一节,更新分数,并在另外的地方又随机出现食物;如果碰到围墙或是自己的身体,则游戏结束,关闭图形系统。1)游戏场景用一个二维坐标表
4、示移动方向利用定义16位制键值如#defineLEFTox40b002)在函数中利用switch函数进行控制方向3)利用结构体来表示蛇,定义两个二维数组分别表示蛇的身体的每一节,记录其横纵坐标structSnake/*定义蛇的结构体*/intxN;intyN;intnode;intdirection;/*蛇移动方向*/intlife;/*蛇的生命,0活着,1死亡*/snake;利用两个一维数组来控制蛇本身的横纵坐标4)食物的表示是一个结构体structFooda)intx;b)inty;c)intdie;/*判断是否出现食物*/d)intbonus;/*判断是否要出现食物的变量*/函数清单文件
5、名函数原型函数功能处理描述调用initgraph切voidInit(void)初始化图形模式voidDraw(void)voidClose(void)voidinterrupt(void)voidinterruptnewtimer画围墙调用closegraph关闭图形调用设置新的时钟中断处理过程调用setvect恢复原有的时钟中断处理过程如何画出蛇蛇如何移动蛇的身体怎样增加怎样吃食物怎样控制奖励如果蛇死,则退出游戏在游戏界面的适当位置打印出游戏得分游戏的分数每增加100分,产生一个奖励判断蛇头的位置和食物的位置是否相同判断奖励的位置和蛇头的位置是否相同到达设定的时间后,若奖励没被吃则消失函数指
6、针重要函数算法分析整个贪吃蛇游戏由5个源文件组成,分别是、文件该文件包括贪吃蛇程序设计中所需要的系统头文件、宏定义、外部全局变量申明和函数原型说明等组成,使构成的贪吃蛇的各个C源文件只需要引用该头文件即可。#ifndefSNAKE_H#defineSNAKE_H/*防止函数重定义*/#defineN200#include#include#include/*系统头文件*/#defineLEFT0x4b00/*定义上下左右的键值*/#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineENTER0x1c0d
7、#defineSPACE0x3920#defineTIMER0x1c/*定义时钟中断号*/unsignedintTimerCounter=0;/*计时变量*/inti,key;intscore=0;intgamespeed=;structFood/*定义食物和奖励的结构体*/intx;inty;intdie;intbonus;/*判断是否要出现食物的变量*/food,good;structSnake/*定义蛇的结构体*/intxN;intyN;intnode;intdirection;/*蛇移动方向*/intlife;/*蛇的生命,0活着,1死亡*/snake;周一上网搜集点阵贪吃蛇的参考资料
8、并分析:参考资料:分析:贪吃蛇游戏的要点:蛇身信息食物的产生及位置食物与蛇身的显示接触检测蛇体增长周二解决要点及的蛇身部分:蛇身信息:定义一个结构体数组,用来储存蛇身坐标。代码:蛇体移动:另声明一个charhead;一个chartail;,则该数组snakehead则代表蛇头,snaketail代表蛇尾,蛇体的移动方式是:点亮下一个点,并使其成为新的蛇头(head+),然后熄灭蛇尾,且使现时最后的点成为新的蛇尾(tail+)。(当head或tail超过数组元素最大值时,其值清0,以此构成队列数据结构。)百度资料:代码:此处的蛇头移动方向无法被定时移动部分使用。蛇身的显示:这里采取逐点显示的方式
9、来显示蛇身每点。首先,据点阵工作原理,先将蛇身某点的坐标转换成字节的形式,然后再赋给对应IO口,短暂延时后再显示下一个点。具体代码如下:总效果如图:周三解决要点:此处使用rand函数作为食物坐标的种子,经过与蛇身各点的对比,排除掉与蛇身重叠的点后,产生食物的坐标,并用一个结构体来保存。代码:开发总结报告一、引言1.编写目的贪吃蛇游戏的开发已经基本完成。写此项目开发总结报告,以方便我们在以后的项目开发中来更好的实施项目的订制开发;让我们在今后的项目开发中有更多的有据的资料来规范我们的开发过程和提高我们的开发效率,从而创造更多效益。预期的读者是游戏软件研发小组所有成员。2.背景系统名称:贪吃蛇游戏
10、任务提出者:手机策划人员开发者:软件开发小组的产品实现人员用户:NOKIA手机用户运行该程序系统的计算中心:NOKIA手机芯片3.定义键盘方向键:键盘上的4.参考资料张海藩:软件工程导论第五版清华大学出版社肖刚等:实用软件文档写作清华大学出版社二、实际开发结果1.产品最终产品名称:贪吃蛇小游戏产品版本:包含子程序:controller、entities、game、listener、save、util、view2.主要功能和性能主要功能:?开始新游戏重新开始一个游戏?暂停使游戏暂停,并保存暂停时的游戏状态?继续游戏暂停后可以继续?设置为初级将游戏设置为比较简单的模式?设置为高级将游戏设置成稍有难
11、度的模式?查看历史成绩查看以前包括本次的游戏成绩和游戏时间?查看游戏说明说明游戏规则?退出游戏主要性能:?精度本软件对数据的精度没有特殊的要求。?时间特性响应时间不能超过1秒钟。更新处理时间也不能超过1秒钟。?灵活性本软件采用的可视化界面,用户通过单击界面上的相关按钮就可以完成相关操作。3.基本流程4.进度提前321计划进度123拖延5.费用工时:需求分析2人*1天/30=1/15人月系统设计4人*8天/30=16/15人月系统测试2人*天/30=1/10人月计算机的使用时间:280机时总计:1/15*3000+16/15*4500+1/10*5000+280*5=6900元预计费用2/15*
12、3000+17/15*4500+2/15*5000+336*5=元节余原因:需求分析和搭建框架时花费的时间较多,为后期设计阶段打好了基础。三、开发工作评价1.对生产效率的评价总行数约为1200行程序的平均生产效率:1000行/人月文件的平均生产效率:50M/=/人月2.对产品质量的评价在测试中一共检查出30个错误,错误发生率和错误/千行。应该说是一个比较低的数值,这与我们在编码中严格控制质量有必然联系。3.对技术方法的评价采用简单工厂设计模式,程序结构化强,逻辑严谨,提高了开发效率和准确度。4.出错原因的分析?对事件监听不熟悉。?不了解如何同时监听键盘事件和鼠标点击事件。?对进程了解不够透彻。四、经验与教训本次项目的开发对键盘事件和鼠标点击事件的监听有了更深的了解。在设计过程中,遇到的最大问题是:系统设计了快捷键和鼠标点击事件,添加快捷键监听事件和鼠标监听事件后,程序运行时,每次按快捷键后就不能响应鼠标事件,开始点击鼠标后就不能响应按键事件,原因在于,如果开始运行后按快捷键则监听事件的焦点在按键上,所以不能响应鼠标点击事件。如果开始运行后点击鼠标则监听事件的焦点在鼠标上,所以不能响应快捷键按键事件。解决的方法是为每个鼠标监听事件添加按键监听事件。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。