欢迎来到天天文库
浏览记录
ID:30122249
大小:160.18 KB
页数:15页
时间:2018-12-27
《《贪吃蛇总结报告》word版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、贪吃蛇总结报告贪吃蛇设计综合实验总结报告课程名称:程序设计实践选题名称:贪吃蛇小组长姓名:方娟200911211056小组成员姓名:邹甜200911211004杜家萱200911211066任课老师:伊乾报告递交时间:2009.6.915贪吃蛇总结报告一系统功能说明贪食蛇游戏是一个深受人们喜爱的游戏:一条蛇在密闭的围墙内,在围墙内出现食物,通过按键控制蛇向上下左右四个方向移动,蛇撞到食物,则食物被吃掉,蛇的身体增加一节。如果蛇在移动的过程中,撞到墙壁或身体的交叉(蛇头撞到自己的身体)游戏结束。现要求利用TurboC2.0来实现该游戏。功能要求如下
2、:一、基本功能1.提供一个图形模式下的界面。2.开始游戏:空格键或回车键;退出游戏:Esc键。3.支持用键盘的方向键来控制蛇的移动,蛇可以向上、下、左、右四个方向移动。4.当蛇头碰到食物时,食物被吃掉,蛇的身体增长一节。5.初始场景内随即出现1个食物,当食物被吃掉时,再随机出现一个食物。6.要有记分机制,没吃掉一个食物,增加相应的分数。7.蛇碰到墙壁或是自己身体的一部分则游戏结束。二、高级功能1.暂停功能:能随时通过按键来暂停游戏,再按一次则继续游戏。2.速度调节功能:当分数达到某个值后,对蛇的移动速度进行一定的提升,但会有一个速度上限。3.奖励机
3、制:增加另一种的奖励食物,蛇吃到该种食物后蛇的身体减少一节(最短不能少于2节),但不增加分数。该种食物的颜色要区别与普通食物的颜色。奖励食物有时间限制,在一定时间内没有吃掉则会消失。4.音效功能:在游戏开始、吃掉食物、撞墙、撞到自己时提供不同的音效。二程序结构初始化图形模式(1)程序结构说明开始游戏处理和实现游戏进行过程中的各种事件和功能结束游戏并关闭图形模式(2)重要数据说明基本思路:15贪吃蛇总结报告首先设计主界面,主界面是一个密封的围墙,并在屏幕最右面留一部分用来显示分数、计时等其他信息。围墙直接画一个矩形来表示,四面围成密闭的矩形来作为围墙
4、。接着是初始化蛇与食物的位置并将他们用图形表示出来。然后进行一个循环,将蛇按当前的方向移动,并处理键盘的方向按键信息,调整蛇的移动方向。蛇头如果碰到食物,则食物消失,蛇身增长一节,更新分数,并在另外的地方又随机出现食物;如果碰到围墙或是自己的身体,则游戏结束,关闭图形系统。1)游戏场景用一个二维坐标表示移动方向利用定义16位制键值如#defineLEFTox40b002)在函数中利用switch函数进行控制方向3)利用结构体来表示蛇,定义两个二维数组分别表示蛇的身体的每一节,记录其横纵坐标structSnake/*定义蛇的结构体*/{intx[N]
5、;inty[N];intnode;intdirection;/*蛇移动方向*/intlife;/*蛇的生命,0活着,1死亡*/}snake;利用两个一维数组来控制蛇本身的横纵坐标4)食物的表示是一个结构体structFood{a)intx;b)inty;c)intdie;/*判断是否出现食物*/d)intbonus;/*判断是否要出现食物的变量*/}(3)函数清单15贪吃蛇总结报告文件名函数原型函数功能处理描述draw.cvoidInit(void)初始化图形模式调用initgraph()切换到图形模式voidDraw(void)初始化贪吃蛇界面
6、调用rectangle()画围墙voidClose(void)关闭图形调用closegraph()关闭图形timer.cvoidinterrupt(*oldtimer)(void)指向原来的时钟中断处理过程入口中的中断处理函数指针(句柄)voidinterruptnewtimer(void)新的时钟中断处理过程调用(*oldtimer)()函数句柄,计时器自动加1voidSetTimer(voidinterrupt(*IntProc)(void))设置新的时钟中断处理过程调用setvect()设置新的时钟中断处理过程voidKillTimer()恢
7、复原有的时钟中断处理过程调用setvect()恢复原有的时钟中断处理过程play.cvoidGamePlay(void)游戏实现的过程如何画出蛇蛇如何移动蛇的身体怎样增加怎样吃食物怎样控制奖励voidGameOver(void)游戏结束后退出游戏如果蛇死,则退出游戏voidPrScore(void)打印出游戏得分在游戏界面的适当位置打印出游戏得分voidIsBonus(void)判断是否产生奖励游戏的分数每增加100分,产生一个奖励voidEatfood(void)判断是否吃食物判断蛇头的位置和食物的位置是否相同voidEatbonus(void)
8、判断是否吃奖励判断奖励的位置和蛇头的位置是否相同voidNotbonus(void)到时间后奖励没被吃掉则奖励消失到达设定
此文档下载收益归作者所有