




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码分类编号密度本科年级论文基于c语言的贪婪蛇游戏学院系专业名称学年学生姓名指导教师2012年10月10日基于c语言的贪婪蛇游戏目录摘要: 3关键字3引言: 31.1课题要求41.2课题研究工具: 41.3应用环境42 .游戏程序设计52.1程序功能: 52.2设计思想52.3.1设计流程图72.3.2游戏流程图83 .数据结构设计83.1 Food结构体83.2 Snake结构93.3游戏中使用的宏常数表104 .算法分析104.1各模块概述115 .系统测试13六.总结13参考文献: 14摘要:近年来,随着通信技术的快速发展,移动网络和移动终端性能的提高和完善,以及移动电话和个人电脑的普及率高,人们对终端系统的应用开发需求不断增加,贪婪蛇游戏是一款受众喜爱的游戏,贪婪蛇的设计复杂,在此游戏设计中, 图形界面的显示和更新、数据的收集和更新都有关系,而且在这个游戏的开发中还应用了c语言的图形库函数。 本文基于c语言提供了对Microsoft Visual C 6.0需要图形驱动文件的支持。 游戏可通过键盘操作,操作简单。关键字:函数环结构序言:贪婪蛇是一款非常古典的手机游戏,贪婪蛇的设计复杂,涉及面广,相关面多。 思想和设计不好的话,开发这个游戏很难。 该游戏设计与图形界面的显示和更新、数据的收集和更新有关,在该游戏的开发中还应用了c语言的图形库函数。 因此,在设计开发过程中,在一定程度上理解c语言的图形库函数,并利用图形库函数实现一些功能。 贪婪蛇取这样的名字,其意图显而易见,贪婪蛇其实并非贪婪,它象征着人们不断追求的象征,只有现代人不断努力才能得到自己想要的东西。 食物也随机出现,就像现在社会上存在的机会一样,我们只能找到自己的目标。 目前市场上存在着各种版本的游戏,但贪婪的蛇市场依然存在。 特别是因为它吸引人。 随着游戏速度的加快,刺激也会加强。 这款游戏的优点可以说是无论是手机还是游戏机都能轻松完成。 很快就会运作得很好。 对于在外面忙的人来说,玩耍不能花很多时间。 我不会玩大游戏。 这种小游戏正好符合他们的需要。贪婪蛇是众所周知的智育类小游戏,选择这个主题是为了活用自己学到的知识,用自己学到的知识对其进行分析,想真正理解其本质和精髓。 我的编程能力不太强,但在本次学习中,我们有信心从实践和实际项目中提高自己的编程能力,通过游戏程序设计提高编程兴趣和编程思路,加强用c语言学到的知识,合理运用资料,使理论与实际相结合。1.1课题要求(1) .收集资料,分析课题,分解问题,形成总体设计思路(2) .对于设计中使用的重要函数,要学会查阅资料,理解其用法,联系问题并具体介绍(3) .检查上机的调试、错误,逐步分析不能正常工作的原因,确保设计的程序正确且正常工作(4) .完成课程设计报告。1.2课题研究工具:此程序由Microsoft Visual C 6.0英文版编译。 VisualC 6.0是Microsoft推出的基于Windows操作系统的可视c编程工具,Microsoft推出了. NET平台集成开发环境使用VisualC 6.0开发应用系统的程序员相当多。1.3应用环境操作系统windowsxpwindowsvistawindows72 .游戏程序设计2.1程序功能:贪婪蛇游戏是典型的小游戏,蛇在围栏中,围栏中随机出现食物,按键盘上的四个光标键控制蛇向上下左右方向移动,蛇头撞击食物,食物被吃掉,蛇身变长,同时记住时,接下来是食物2.2设计思想这个程序的关键是表示蛇的图形和蛇的动作。 蛇的身体用小矩形表示,身体每长一长,就会增加矩形块,用两个蛇头表示。 因为移动要从蛇头开始,蛇不能向相反方向移动,也就是说蛇尾不能变成蛇头。 如果什么都不按,蛇就会自己向现在的方向前进,玩家一按有效的方向键,蛇头就会向指定的方向移动,一步一步地动作,所以按下有效的方向键,蛇头的位置就会决定,蛇身会随着蛇头移动,图形的实现就是从蛇头的新位置画蛇,庆平因为原来蛇的位置和新蛇的位置之差是一个单位,在社会上看起来有很多身体,所以用背景色复盖了蛇的最后一节。 食物的出现和消失也描绘了矩形块和霸盖矩形块。 食物的出现和消失也描绘了矩形块和霸盖矩形块。其实,我们可以简单地模拟吃蛇的游戏模型。 在一个世界上突然出现一条蛇,它很短,它的运动神经异常,它阻止不了自己多动症的只有那个世界上的食物,它是饥饿的,贪婪的同样在不知道原因的情况下,食物从天而降,但遗憾的是没有掉到嘴里的饥饿的主人公,是否有毒不论食物的起源,吃直向食物攀登的食物,以超乎想象的同化能力,很快成为自己身体的一部分,身体变长了。 吃第一个食物时,神给了第二个食物。 然后我吃了第二个食物。 然后,变长了。 然后,第三个身体变长了。 身体变长了,自己的身体变长了,个身体变得不自由,也继续吃。 现在为了让食物有绿色的通道,笔直地变大了。 但是,有一天下午,它咬了自己,因为想起了自己是毒蛇,就昏过去了(不是毒杀)。 冲向食物时,失去了控制,撞到了墙上。为便于理解,定义了两个结构:食物和蛇。整个游戏分为四个步骤:第一步是食物出来第二,蛇继续移动第三,检查蛇撞到自己或墙上。从第四步到游戏有两条支线(a,b ) :第四步a,蛇不接触自己和墙壁,蛇继续前进,描绘蛇的动作第五步,判断蛇是否吃了食物,如果蛇吃了食物,身体变长,原来的食物就消失了在第六步中,使游戏者输入控制指令,蛇在下一循环的第二步中改变运动方向重复第七步骤、第二回合的第一步骤和第一回合的步骤步骤b,蛇撞到自己或墙上停止游戏。2.3.1设计流程图开始蛇的行进方向是按钮方向蛇正常运动游戏初始化接口游戏开始了按钮选择是的,先生否蛇吃食物否撞墙或撞到自己是的,先生蛇死玩家结束游戏2.3.2游戏流程图游戏开始了游戏执行打分数游戏结束3 .数据结构设计游戏中蛇和食物是两个主要对象,程序中可以使用Food和Snake这两个结构体分别记述食物和蛇。3.1 Food结构Food结构用于描述食物在屏幕上的位置以及是否需要向游戏场景中添加食物。 结构的成员x和y表示记述食物在画面上的位置、列坐标的成员变量addFood表示是否需要向游戏场景追加食物,addFood=0表示游戏场景中有食物,addFood=1表示食物被贪婪的蛇吞噬Food结构的定义如下结构福德装模作样int x; /*食物的横轴*/int y; /*食物纵轴*/int addFood; /*画面上是否有食物标记,0 :表示有食物1 :表示游戏场景中需要追加食物*/3.2 Snake结构Snake构造体记述了游戏中的贪婪蛇,包含了贪婪蛇身的节数、蛇身各节在画面上的坐标位置、蛇的移动方向和生命状态等信息。 结构成员Joint表示现在吃蛇身体的节数。 常数MAX_JOINT表示游戏中被允许吃蛇的身体的最大节数。 结构以二维阵列xMAX_JOINT和yMAX_JOINT存储蛇身的每个部分在屏幕上的行和列坐标。 结构成员direction代表蛇的当前移动方向,约1、2、3、4分别代表右、左、上、下四个方向,并且对应于程序中的四个宏量MV_RIGHT、MV_LEFT、MV_UP、MV_DOWM。 成员life描述蛇的生命状态,life=0,表示活着,life=1,表示死亡。 Snake结构的定义如下struct Snake装模作样int xMAX_JOINTS; /*保存蛇身各部分画面上的列坐标*/int yMAX_JOINTS; /*保存蛇身各部分画面上的列坐标*/int joint; /*蛇节数*/int direction; /*蛇的移动方向*/int life; 蛇的生命,0活着,1死亡*/3.3游戏中使用的宏常数表宏观常数数值意思MAX_JOINTS200以蛇为食的最大节数RIGHT0x4d00键盘键的键值左翼0x4b00键盘键的键值DOWN0x5000键盘键的键值美联储0x4800键盘键的键值欧洲足球联赛0x011b键盘Esc键的键值MV_RIGHT1蛇向右移动MV_LEFT2蛇向左移动MV_UP3蛇向上移动MV_DOWM4蛇向下移动4 .算法分析根据需要的任务要求,规划输入数据和输出结果,决定存储数据的数据结构。在c语言中数据结构集中表现为数据类型,因此在进行c语言程序的设计时,必须统一在程序中使用的变量、数组、指针等以及它们的类型等。 这一点很重要,如果在其间选择不恰当的变量或数组,将来的修正将变得困难。程序通过不断扫描玩家的键盘输入来决定蛇的运动方向,随时检测蛇头的位置来判断蛇是否在吃食物。 吃了食物,就按照游戏规则伸长蛇的长度,一边更新分数,一边在游戏场景中随机生成新的食物,当这样循环的蛇头碰到游戏场景的边界和蛇的身体时,游戏结束。 玩家也可以按Esc键结束游戏。主函数main ()通过调用函数InitGraph ()实现图形系统的初始化,通过调用函数DrawFence ()实现围墙等游戏场景,通过调用函数GamePlay ()实现具体的贪婪游戏,函数pr其中,函数GamePlay ()是实现贪婪的蛇游戏的重要函数。 首先,随机出现新的食物,设定蛇的初始状态及其运动方向,使初始得分为零,然后通过while循环检测玩家的键盘输入,控制蛇的运动方向。 蛇头撞到墙壁或自己的身体,调用函数GameOver ()结束游戏。 需要注意的是,因为蛇的头是两个,第三节蛇的身体不能弯曲,游戏程序从蛇的第四节开始判断是否碰到了自己和墙壁。4.1各模块概要设计的钥匙是蛇在不停地移动:蛇的动作不停的是,蛇的下一节代替上一节的位置,在计算机上蛇的下一节的位置坐标成为上一节的位置坐标。 以上,所定义的蛇的位置坐标为排列型,一组坐标与一节的位置对应,假设有i 1节,则从0到I节,I节的坐标为i-1节的坐标,i-1节的坐标为i-2节的坐标1节为止取0节的坐标。 第0节的坐标,即蛇头的坐标向某个方向变化,变化量是蛇的各节的长度。 继续蛇的这个坐标交替需要循环句。1.main ()主函数主函数是程序的主要流程,首先定义要使用的常量、全局变量和函数的原型说明,然后初始化图形系统。2 .画面函数DrawFence ()主接口是密封的墙,用两个循环句分别输出在水平方向和垂直方向上连续的宽度和高度为10单位的矩形的小方块,包围密封的图形,表示墙,为了显眼设定为浅蓝色,函数setlinestyle(SOLID_LINE,0,THICK_WIDTH ) 设置3像素的栅栏线,蛇贴在墙壁上行走时,去掉栅栏线的一部分,使线变细,图形不变漂亮。 不想这样做时,将线宽设定为1个像素。3 .游戏的具体过程函数GamePlay ()该函数是游戏的主要部分,标出蛇的新位置,删除上次的图形是一个难点。 每次移动时从最后一节到最后一节(因为蛇头是两个)将前一节的坐标分配给下一节的坐标,移动后用背景色删除最后一节即可。 因为新的位置从0到nl节出现在画面上。 蛇头用箭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册会计师招聘面试要点及模拟题解析
- 2025年采购管理专员求职攻略与模拟题集全解
- 电信网络安全知识培训课件
- 2025年热切割技术面试模拟题及答案
- 2025年医疗技术专家中级面试预测题及备考指南
- 2025年美妆行业:谷雨品牌拆解-解数咨询
- 某中小学二年级新学期家长会-动态
- 停顿和重音课件教学
- 田字演变课件
- 24孝图教学课件
- 化工操作工培训课件
- 血透室设备维护与操作规范
- 2025至2030高校后勤行业发展趋势分析与未来投资战略咨询研究报告
- 2025中国电信安全公司春季校园招聘笔试参考题库附带答案详解(10套)
- 通信技术未来发展趋势
- 整形美容外科进修汇报
- 立达RSBD并条机培训资料讲课文档
- 2025年幼儿园膳食工作计划
- 2025车位包销合同
- 心绞痛健康宣教课件
- 奥尔夫音乐教师培训课件
评论
0/150
提交评论