2023年c语言程序贪吃蛇课程设计报告.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年c语言程序贪吃蛇课程设计报告.docx》由会员分享,可在线阅读,更多相关《2023年c语言程序贪吃蛇课程设计报告.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年c语言程序贪吃蛇课程设计报告 高级语言程序设计 课程设计报告 Experiment Designing reporter 课程名称:高级语言程序设计 英文名称 : C Program Experiment Designing 专业:自动化 111 学号: XXX 姓名: XXX 指导教师: XXX 日期: 2023 年 6月 17日至 2023 年6 月 20 日 山东工商学院信电学院 一:课程设计内容 程序功能介绍 贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食
2、物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。 设计思路 我们小组称设计本次课题贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”: 第一步: 寻找到一个真正可以运行的已用C编好的贪吃蛇。 因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。 第二步: 运行游戏并了解游戏程序。 我们认为,只
3、有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。 同样重要的是了解游戏程序。因为只有看懂了程序,才能实现对他的改编,才能游刃有余。 第三步: 寻找模块并分类,而后进行改编。 寻找到你想要改变的游戏内容的控制模块,比如,我想要增加一堵墙,那么就应该找到 void DrawK(void) setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=200;i rectangle(i,200,i+10,209); 然
4、后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块.并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。 对于找到的模块如何进行改编呢?怎么才能知道某个数值或函数代表什么呢? 我们有两个方法: 1.)看名字,比如snakecolor(),很明显他的意思是蛇的颜色。2.)控制变量猜想,比如设置墙的时候for(i=200;i rectangle(i,300,i+10,309); 中的200,500,300,209 代表什么呢?我们可以猜想:它很像是坐标上的(x,y)的格式,是不是呢?可可以先让其他数值不变,只让309改变,改
5、变后发现上面的墙变粗了,由此可见这个数字控制的是一堵墙的最下面一行的坐标。 关于该程序的相关分析思路答题模板: 1 .贪吃蛇程序流程图如下: 二.贪吃蛇程序的改编: 经过小组成员的认真研究我们对其进行了如下改编 第一步加墙 void DrawK(void) /*setbkcolor(MAGENTA);*/ setcolor(5); / 可以改变颜色 setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ 横向上的墙: for(i=100;i rectangle(i,60,i+10,69); /本行代表纵坐标上:60代表墙的最上面一行的位置,69代表墙最下
6、面一行的位置。69-60=9,9代表墙块的厚度 纵向上的墙: for(i=100;i rectangle(100,i,109,i+10); /本行代表纵坐标上:100代表墙的最左边面一行的位置,69代表墙最右面一行的位置。69-60=9,9代表墙块的宽度 我们认为本模块最重要的是for语句控制的坐标代表的意思。只要明白了坐标的意思,就可以实现对游戏的改编。 第二步就是进行对新加入的墙蛇是否撞上死亡 让蛇撞墙死 if(snake.x0190&snake.x0=200& snake.y0 /*其中,对x,y范围的控制,实际是对蛇撞击的死亡区域的限制。*/ GameOver();/*本次游戏结束*/
7、 snake.life=1; /*蛇死*/ 相应的新添加的墙。 for(i=200;i rectangle(i,200,i+10,209); /*指定位置*/ 第三步食物的定点出现 if(food.yes=1)/*需要出现新食物*/ 这里说明一下:rand() 产生0-65535的数,在limits.h里有定义%400后产生一个0-399的数+60 则为 60 459,即:%400+60意思是在60399之间随机产生一个数。 food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这
8、样才可以让蛇吃到*/ food.x+; while(food.y%10!=0) food.y+; food.yes=0;/*画面上有食物了*/ 如果将food.x=(常数a)那么食物就会出现在x=a行的随机列,对于food.y=(常数b)那么食物就出现在y=b列的随机行。 第四步对食物墙壁的颜色以及对蛇的运动速个性化调节 setcolor(4);/ 对颜色的调整 int gamespeed=50000;/*游戏速度自己调整*/ 通过改变变量的值,就可以个性化选择自己喜欢的颜色,这将是一场别开生面的游戏界面。 * 红色代表解析浅蓝代表提示 三 .课程设计总结 有言曰:“实践出真知”,在这几天的课
9、程设计实践中,我们组三人真正的体会到了这句话的真谛。 在经历了一学期的C语言学习后,我们从以往的“纸上谈兵”直接过渡到“实际作战”。我们实现了让静态的程序变成动态的游戏效果,虽然我们只是改编了一下别人做好的程序,但我们同样由此获益匪浅,感触颇深,当然也发现了许多自己的不足。 首先,在我们刚刚进行第一步“寻找程序”的时候,就被搁浅了,因为我们发现,在网上能找到一个真正符合我们使用标准的程序很难,就是找到了几个也没有能运行它们的程序。我们花费了前两天的时间来寻找能够使用的程序和软件,但最后还是一无所获,正当我们一筹莫展的时候,我们的导师杨老师给我们带来了曙光,使得我们在黑暗中找到了希望的光明,杨老
10、师给我们传来了一个上届师哥做好的程序,并且把它的运行软件也给了我们,这对我们来说无疑是雪中送炭,得到这个程序后,我们三个人看到了C语言运行一个游戏的流程和方法,我们脑中也大概有了一个思路。我们三个人以此程序为跳板,直接开始对程序模块进行挑选,因为我们已经浪费了两天,所以我们决定进行分工作业,分别去寻找:筑墙模块,加苹果模块,撞墙死模块。最后我们用了一下午时间完成了三大步中的前两大步和第三步的第一部分,剩下的就是最重要而充满挑战的改编了,从以上的操作中,让我们明白了找对一个平台的重要性,这个平台就是老师给我们的程序,就是我们的前进方向。没有了方向了的征程,一开始就是个错误。在我们寻找程序模块的时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 语言 程序 贪吃 课程设计 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内