ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:545.40KB ,
资源ID:19621049      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19621049.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(贪吃蛇游戏Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

贪吃蛇游戏Word文件下载.docx

1、1.2、简要说明2、设计要求3、系统分析与模块设计3.1、算法设计3.2、数据结构3.3、模块设计3.4、模块枝干图4、程序流程图4.1、图形驱动4.2、开始画面4.3、显示食物4.4、蛇向前移动4.5、判蛇死4.6、吃到食物后处理4.7、判蛇反向移动4.8、游戏结束4.9、图形结束5、程序设计及关键源代码6、运行结果分析7、实习心得贪吃蛇游戏的设计1 .概 述 首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。模块的数量不宜太多,也不宜太少,要使每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制

2、流程图了。流程图要简单,容易理解,多用中文。不宜写过长的代码,增加理解难度。流程图与模块枝干图均可用绘图软件绘制,可适当加些背景色,用以区分。此外,流程图应容易转换成代码。绘制好了流程图,就要编写代码了。直接在TC环境里输入代码,然后运行测试,检查错误,最终,将设计出可行的程序。1.2、简要说明 我设计的贪吃蛇游戏具有很多独特性。例如,墙壁不用实体,而用中空的墙,颜色为绿色,显得更美观,且不易使眼疲劳。操作上,做了些简化,游戏开始时便可以自动运行,且速度较快,属中等难度。玩游戏的过程相当简单,只需按键盘上的上下左右方向键,便可改变蛇的行进方向。食物随机产生。贪吃蛇吃到一个食物后便得到10分。得

3、分显示在左上角。当蛇撞到墙壁或自己时,蛇死,游戏结束,输出得分。2.设计要求 外观为矩形,食物随机产生,添加注释,统计得分、每吃到一个食物获得10分。蛇碰到自己或墙壁,游戏均结束。游戏结束时输出得分。画出模块枝干图与每个模块的程序流程图。修改某些代码,改变其外观及功能。游戏操作应尽量简单。界面美观,让人看了觉得舒服。 玩游戏过程采用递归算法,由while(1)控制循环过程,可使游戏重复玩,在蛇死之前不停的玩。判断蛇死的算法是通过判断蛇有没有碰到自己及墙壁。使蛇向前移动采用递归算法,通过递归将蛇的每一节依次向前移动,横坐标与纵坐标依次向前赋值,从而达到使蛇前移的目的。蛇的前进方向通过if结构判断

4、。 蛇与食物信息分别用两个结构体存储与表示。将食物的横坐标x、纵坐标y和判断是否要出现食物的变量yes分别作为食物的结构体的成员。蛇的横坐标数组xn,纵坐标数组yn,蛇的节数node,蛇的移动方向direction、蛇的生命life分别作为蛇的结构体的成员。结构体内每个成员的存储类型均为整型。模块应具有高内聚性,低耦合性。这样,程序运行才更稳定,效率更高。据功能将贪吃蛇游戏划分成四个大模块,九个小模块。每个模块均具有自己的功能,而且,比较容易画出各个模块的流程图。 简要说明:图形驱动即完成初始化图形系统功能;开始画面模块的主要作用是根据设置绘制出玩游戏区域四周的墙壁;玩游戏的过程是游戏此游戏程

5、序的核心,又可细分为好多小的功能模块;其中,显示食物模块仅完成显示食物功能;蛇前移模块即通过递归算法实现蛇的向某方向移动;判蛇死模块的功能是通过判断蛇是否碰到自己或墙壁来判断蛇有没有死亡。吃到食物后小模块只有蛇吃到食物后才起作用。即当蛇吃到食物后,蛇自身延长一节并绘出蛇,同时加10分。通过键盘操控来玩游戏主要由判反向移动模块完成,即当蛇不是反向移动时,按照键盘上方向键指示移动。游戏结束模块功能简单,仅完成输出得分与提示语功能。最后图形结束模块完成关闭图形功能。4.3、 显示食物4.4、 蛇向前移动4.5、 判蛇死4.6、 吃到食物后处理4.7、 判蛇反向移动4.8、 游戏结束4.9、 图形结束

6、定义上下左右控制方向:#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b设定游戏速度:int gamespeed=60000;用结构体定义食物与蛇:struct Food int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/food;/*食物的结构体*/struct Snake int xN; int yN; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ in

7、t life;/* 蛇的生命,0活着,1死亡*/snake;主函数:void main(void) Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/图形驱动:void Init(void) int gd=DETECT,gm; initgraph(&gd,&gm,c:tc); cleardevice();开始画面,左上角坐标为(50,40),右下角坐标为(620,460)的围墙:void DrawK(void) setcolor(10);/*绿色*/ setlinestyle(SOLID_LINE,0

8、,THICK_WIDTH);/*设置线型*/ for(i=50;i0;i-)/*蛇的每个环节前移动,关键算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) case 1:snake.x0+=10;break; case 2: snake.x0-=10; case 3: snake.y0-=10; case 4: snake.y0+=10; for(i=3;snake.node;i+) if(snake.xi=snake.x0&sna

9、ke.yi=snake.y0) GameOver();/*显示失败*/ snake.life=1; break; if(snake.x0595|snake.y0455) /*蛇死*/ if(snake.life=1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ if(snake.x0=food.x&snake.y0=food.y)/*吃到食物以后*/ setcolor(0);/*把画面上的食物东西去掉*/ snake.xsnake.node=-20;snake.ysnake.node=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node+;/

10、*蛇的身体长一节*/*画面上需要出现新的食物*/ score+=10;/*输出新得分*/ setcolor(4);/*画出蛇*/ for(i=0; rectangle(snake.xi,snake.yi,snake.xi+10, snake.yi-10); delay(gamespeed);/*用黑色去除最后一节*/ rectangle(snake.xsnake.node-1,snake.ysnake.node-1, snake.xsnake.node-1+10,snake.ysnake.node-1-10); /*endwhile(!kbhit)*/ if(snake.life=1)/*如果

11、蛇死就跳出循环*/ key=bioskey(0);/*接收按键*/ if(key=ESC)/*按ESC键退出*/ else if(key=UP&snake.direction!=4)/*判断是否往相反的方向移动*/ snake.direction=3; else if(key=RIGHT&=2) else if(key=LEFT&=1) snake.direction=2; else if(key=DOWN&=3) snake.direction=4; /*endwhile(1)*/游戏结束:void GameOver(void) setcolor(GREEN); settextstyle(0

12、,0,3); outtextxy(200,200, Game over!Try! getch();输出成绩:void PrScore(void) char str10; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(5); settextstyle(0,0,2); sprintf(str,score:%d,score); outtextxy(55,20,str);通过运行,我对自己的设计比较满意。运行结果正如我所料,此贪吃蛇游戏具有易操作性及充满活力的外观。截图及描述:图6-1 开始画面 此图为开始画面图,蛇有三节,墙

13、壁颜色为绿色,显得较有活力。图6-2 蛇吃到两个食物后蛇吃到食物后,得分为20分,蛇延长两节。图6-3 游戏结束画面 在大一学习期间,我就知道在大二暑假期间,有程序设计实习。从那时起,我就期盼着这一天早点到来。只因我对编程有浓厚的兴趣。我是我们班第一个通过江苏省计算机VB二级考试的。我的VC+成绩也还可以。转眼间,程序设计实习就如期而至了。实习的第一天是充满好奇与兴趣,当实习回来时,就感觉得这次实习并非想象中的那样。我本以为,程序设计实习应该是开放性的,让我们参照某些课题,自主、自由地设计程序。我想,那样更能促进我们学习和提高我们的动手能力。这次实习中,我们都被给了程序的源码,而且有详细的功能

14、说明。表面上看,我们几乎不需什么努力就能完成,而实际上,并非如此。因为那些程序大多是基于16位DOS执行的,并且,里面包含许多DOS下图形处理的函数,我从未涉及过,所以,很难看懂代码,即使有那样详细的注释。通过坚持上机实习,我对代码的认识越来越多。我还上网找了些资料,如TC函数详解等等。我更多的了解了各种TC函数的功能。我通过一步步的学习,终于弄懂了整个程序,并且对程序做了些修改。如外观、大小、输出成绩等。通过修改程序代码增加游戏的功能,我也从中获得了自信。通过使用Win-TC1.9设计程序,我更多的了解了TC函数的功能与用法,也了解了在TC环境下调用DOS绘图及处理的常用方法。在上机实习的过

15、程中,还绘制了模块枝干图与程序流程图,我感觉到,画模块枝干图并不是件容易的事。只有在弄懂程序后才能将整个程序划分成数量适宜的模块。划分模块确实挺重要的,原来我将玩游戏过程划为一个模块,后来发现太复杂,很难画出流程图。模块的数量直接关系到绘制程序流程图的难度。从中,我更深入了解了程序设计的整个过程,这也是我最受益的地方。在实习过程中,遇到不懂的问题,时而查阅以前学过的书籍,也等于我做了复习。这也能提高我将理论付诸实践的能力。此外,实习期间,你将我们划分成小组;这促进了我们的相互合作与相互学习。总之,通过这次实习,我学到了好多书本以外的知识!我同样很感谢老师,您!参考文献1 张岳新Visual C+程序设计。2 张岳新Visual C+程序设计基础实验指导书。3沈被娜 刘祖照 计算机软件技术基础

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1