测试结果
4.2测试过程
测试过程[10]:第一步是测试组成该系统的单个构件,即单元测试(Unit Testing,UT),在单元测试中,首先检查代码在程序算法,数据和语法方面有没有缺陷,最后给该构件输入一个测试用例集,以说明该构件是否正确。第二步是集成测试(Integration Testing,IT),目标是保证构件群体能够按规格说明中所规定的那样协调工作,一旦某构件彻底地进行了单元测试,即可将它集成到当前工作的子系统中,集成测试就可以开始了。最后的集成测试是对整个系统的测试,即(System Testing,ST)对系统所有构件的测试。
在测试过程中,主要对游戏中各种判断进行测试,例如,蛇头触及墙壁游戏是否结束,水果是否按时刷新等。
4.3测试结果
这个游戏经过系统测试,基本能达到运行要求,但在测试过程中遇到很多问题,列举如下:
1)游戏中蛇刚刚接触墙壁的时候可能不会立即死掉,还能往前面走一步才会提示游戏结束。在程序的调试中,这种随机错误是很难调试,因为程序员很难定位错误发生的地点,这也给解决错误增加了难度。
2)双缓冲技术处理刷新过程中,不仅不能去掉闪烁,而且也不会刷新屏幕。所有的位图会在屏幕上重叠。经过调试发现,所创建的内存位图没有和屏幕DC关联,内存中没有地方绘图。关联以后游戏运行正常。
3)本设计仍然存在一些问题,如在方向改变过程中假如蛇的当前方向是向上,如果直接按下方向键下,程序会屏蔽掉消息。如果按下方向键向左或者向右,然后迅速按下方向键下,如果时间间隔足够小,蛇头会翻转向下撞在蛇身上,游戏结束。由于这个时间间隔很小,在正常游戏中不会影响游戏的运行和玩家操作,对于游戏的实际影响可以忽略不计,所以不再更正。这个问题可以通过在定时器中添加大量的判断解决。
5.总结
贪食蛇游戏的设计,涉及到图像处理的各种技术,如双缓冲处理闪屏、光栅操作代码、图片透明处理等,面向对象的类设计,游戏算法设计。在通过本次毕业设计学到了不少新知识,并且独立设计出自己的算法,如蛇的移动算法和游戏结束判定算法。在毕业设计中有很多的收获,这对自己以后的工作有很大的帮助。
在设计中遇到了很多问题,如图片不能透明显示、类的设计不完善、游戏结束后蛇还可以移动,蛇可以穿越虫子和墙,吃掉的水果不会消失,但是经过耐心的调试,都最终得到了解决。
虽然设计的作品不是很成熟,即使借鉴前人的很多资料仍然还有很多不足之处,但心里仍然有一种莫大的幸福感,因为自己实实在在地走过了一个完整的设计所应该走的每一个过程,并且享受了每一个过程,更重要的是这个设计中加入了自己鲜活的思想。总之,这次毕业设计的经历,深深感受到做设计和写论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,就不会在所学专业中有所成就。希望这次的经历能让自己在以后学习中继续进步。 VC++贪食蛇游戏的实现(5):http://www.youerw.com/jisuanji/lunwen_1708.html