贪食蛇计算机实习报告.doc

上传人:仙人指路1688 文档编号:2882377 上传时间:2023-03-01 格式:DOC 页数:11 大小:183KB
返回 下载 相关 举报
贪食蛇计算机实习报告.doc_第1页
第1页 / 共11页
贪食蛇计算机实习报告.doc_第2页
第2页 / 共11页
贪食蛇计算机实习报告.doc_第3页
第3页 / 共11页
贪食蛇计算机实习报告.doc_第4页
第4页 / 共11页
贪食蛇计算机实习报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《贪食蛇计算机实习报告.doc》由会员分享,可在线阅读,更多相关《贪食蛇计算机实习报告.doc(11页珍藏版)》请在三一办公上搜索。

1、计算机实习报告 姓名: 班级: 学号: 小班序号:指导老师:夏海轮题目:贪吃蛇游戏邮箱:贪吃蛇游戏实验报告一功能说明1.1总体功能说明贪吃蛇游戏主要实现的功能是蛇的移动,转向。产生水果,吃水果增加蛇身的长度。撞到自己,墙壁,障碍死亡,另外还有暂停,音乐和排除错误按键干扰等功能。1.2用户界面 一、游戏的主界面: 进入游戏首先进入游戏的主界面。上面有游戏说明,然后会有1,2,3三个选项。分别用于选择游戏的难度。按其他键默认选择容易级别。二、游戏界面: 游戏界面下方会及时显示游戏难度、得分和吃水果数。三、死亡界面:此界面给出重新玩游戏或者结束游戏的选择。1.3使用方法控制游戏的按键为:上: 下:

2、左: 右:按空格键暂停,然后按空格键开始。在游戏过程中按其他键无效。游戏有三种等级可以选。易,中,难。区别是蛇的移动速度的不同。二程序设计说明2.1 总体设计框架选择难度易中难游戏开始界面 游戏界面选择重新开始死亡游戏结束,退出主程序蛇的移动与增长水果的产生蛇身的增长蛇身的移动蛇的死亡判断水果位置是否正确正确不正确碰壁,撞身重新产生直接产生水果2.2 关键算法描述算法:算法输入参数和输出参数,算法功能,使用什么存储结构,在主程序中起什么作用,可以使用框图或伪代码表示。算法1:if(ch1=224)/按了方向键 int ch2=_getch();/从缓冲区再获得一个字符if (ch2=72)/向

3、上if(coordinate(hx-2)/2hy=2)/不能反向地走,忽略,继续自动走Automatic( );/使用自动移动的函数elsecoordinate(hx-2)/2hy=1;/留下移动方向的标记,让身体能够跟上蛇头的轨迹hy=hy-1;/蛇头高度减一/判断有没有撞墙if(coordinate(hx-2)/2hy0)/ 撞到了自身或者栅栏textout(handle,35,17,head,1, Game Over!);/输出break;else if(coordinate(hx-2)/2hy0)/吃到水果marks=marks+600/speed;/加分fs=0;/标志重置tailF

4、lag = false;/*/coordinate(hx-2)/2hy=1;/留下标记textout(handle,hx,hy,head,1, );/输出fruiteat(handle);/使用吃到水果后的函数else if(coordinate(hx-2)/2hy=0)/走到空地上coordinate(hx-2)/2hy=1;/留下标记textout(handle,hx,hy,head,1, );/输出实现的是按键之后的变化。每一个上,下,左,右键都对应着遇上空地,遇上蛇身与栅栏,遇上果子三种情况,以上代码段仅列举了按上键之后的所有情况。若遇上空地,则使该坐标显示值为1,使得以后的身子也能向

5、上行走;若遇上蛇身或者栅栏则游戏结束;若遇上果子则吃掉果子,并使用吃了果子之后的函数。算法2:if (tailFlag) /尾部的处理/以下只对向上走的部分做详细解释,向其他三个方向走的部分类似if (coordinate(tx-2)/2ty=1)/向上走coordinate(tx-2)/2ty=0;/将方格的标志置零,方便下次调用textout(handle,tx,ty,tail,1, );/将方格变回空白ty=ty-1;/尾部向上移动 实现的是尾部的处理。前文提到每走一步就会增加一节身体,同时运行这段代码剪掉尾部,而如果满足吃了果子就不会运行这段代码,此时则蛇身增长一块。算法3:void

6、fruiteat(HANDLE handle)while(0)if(fs=0)/水果已被吃while(!fs)/一直循环到水果已放置fx=rand()%36+1;/让水果随机出现fy=rand()%36+1;eatnumber+;/吃水果数目加一if(coordinate(fx)fy=0) & fx!=2 & fx!=35 & fy!=2 & fy!=35)/如果可以放置水果 coordinate(fx)fy=-1; textout(handle,2*fx+2,fy,fruit,1, ); fs=1; break;else break; :此函数实现的是随机出现果子的处理。最初果子数设为-1,

7、每出现一个果子则+1,以此来计算吃了果子的数量。同时在出现果子时会判断出现地点正确性。2.3 程序设计的难点和关键点此程序的难点和关键点:一、 如何使用一种算法同时实现对面对空地,蛇身,栅栏,果子的判断。二、如何记录坐标的状态指引蛇身跟着舌头运动。三,如何是使蛇在前进的时候,按与运动方向相反的键时,不会使蛇头返回移动。2.4 调试的方法在程序运行过程中会出现死循环,不明的错误。这时候就进行程序的调试。设置断点,跟入,一步步看程序的运行过程,检查变量的值,最后找出错误所在。比如在做转弯的时候,每转一次弯蛇身就会减少一截,这是因为算法之间的衔接不好。2.5 程序性能评价 从程序本身上看,优点是我实

8、现了贪吃蛇的基本功能,并且考虑到了可能按错键之类的情况都进行了处理。作为一个基础游戏是达到了目标。同时程序有点冗长,代码有些重复的地方。 从程序的效果上,我的画面较为简洁,并实现了应有的功能。但是显示画面的绚丽程度不足。三心得体会这次小学期C+实习我费了很大的功夫。因为上学期C+学习都是基于理论和考试,并没有多少针对实际的练习,所以当我决定做贪吃蛇时,设计算法是一个非常艰难的过程。并且由于知识遗忘的比较多,所以最开始上手时程序出现了很多错误。通过请教同学和老师,最终把那些错误都改正了,使得程序能够继续编下去。这次的编程经历让我收获颇丰,不仅锻炼了我面向对象的思维能力,还间接地帮助我整合了过去所学过的各种编程方法和技巧。通过不断应对各种bug,以前自己不清楚或者理解错误的很多地方都被修正过来了。有了这次的经验,我相信在自己以后在对编程课程的学习掌握上会更加熟练与成熟。

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号