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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于Labview的贪吃蛇游戏设计报告.docx

1、基于Labview的贪吃蛇游戏设计报告虚拟仪器实验报告题 目: 基于labview的贪吃蛇游戏设计 学生: 国斌 白宏韬 指导老师: 林 1.目的及基本要求本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果,越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。2.设计原理 贪吃蛇

2、游戏大体上可分为以下几个部分: 1) 控制部分 就是通过输入输出来控制蛇的运动 2) 逻辑部分 进行判断蛇吃了没有 是否撞墙 同时把蛇的长度增加一节 还要实现分数的计算 3) 图象显示部分 将游戏显示出来 本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用外部硬件控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋;4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续;5.游戏可以有多种难度选择等 3.游戏设计3.1 前面板设计采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。

3、对XY图的属性做如下修改:1.去除标尺及标签,设置标尺为0:1000;2.去除两个方向的网格,使最终屏幕全黑;3.修改各条曲线的宽度、颜色和点样式,使小蛇苹果能够以不同样式显示。 图1 主程序前面板3.2 后面板程序框图设计如何控制蛇移动去吃苹果同时避免碰到自己的身体或者撞墙是一个复杂的程序。特此将程序分成多个子程序来编写使程序简单明了。下面分别介绍贪吃蛇程序中的各个子VI。1.主程序程序框图主程序程序框图运用平铺式顺序结构,第一帧是游戏介绍,第二帧是程序主程序。 在主程序的上半部分采用一个while循环、一个事件结构和一个条件结构来设置游戏的输入循环,根据按键以否来判断游戏的下步动作方向。在

4、主程序的下半部分运用while循环来控制游戏的循环。游戏结束时通过用户的输入指令来决定游戏是否循环,输入“Yes”指令时游戏继续,否则游戏结束跳出循环。在while循环里再运用一个while循环来控制游戏的运动循环,当发生“自杀”事件或者“撞墙”事件时游戏结束跳出循环,否则游戏继续循环。 图2 主程序程序框图 2.XY坐标子程序此程序的作用是把蛇的活动按有无蛇身、苹果赋值。通过XY坐标来显示蛇移动的轨迹,同时删除已走过的轨迹路径,避免与新的路径混淆使程序出错。程序框图见下面:图3 输入XY坐标图4 删除XY坐标3.小蛇的移动控制由于蛇本身是一个可增加元素的数组,所以用一个含两个一维方向数组的簇

5、来进行操作。每次读取坐标或者增添完坐标后都要用簇解绑及簇捆绑来处理,这样也便于在XY图中显示。控制小蛇游走的方法是给定一个方向direction,然后利用这个direction的值来控制当前点与下一点的变换。小蛇不停的移动,为了使之与苹果碰撞后能便捷的增加长度,这里采用这样的方法实现:小蛇每按direction移动一个,就在小蛇数组的开头添加一个点(此时这两个点是相邻的),然后将添加的点与苹果所在坐标比较,如果不同,就将蛇数组的最后一个元素删除,表示没有吃到苹果;如果相同,就保留这个元素(此时,相对于前一个位置时,小蛇的长度增加了),并且删除这个苹果,重新随机产生另一个苹果。循环往复(在whi

6、le循环上添加移位寄存器)直到游戏结束。插入蛇头新坐标的子程序框图图5 蛇头新坐标的子程序框图4.苹果增减的控制 对于苹果的操作主要是判断当前苹果的位置与蛇头位置是否相同,在相同的情况下,需要将苹果的位置重新赋值,这是处理一个苹果的时候。如果要设计多个苹果,只需判断当前苹果的个数是否减少,并在减少后随机产生一个新的苹果。程序里一次性最多可以产生20个苹果,用数组存储。当苹果的数量明显少于最大值时就随机产生一个苹果。当蛇头与苹果的位置相同时消掉该苹果,否则保留该苹果。为了便于苹果与蛇同时在屏幕上显示,特将苹果套用蛇数组的格式绑定为簇,然后与蛇数组合并为一个数组后同时显示在XY图上。图6 苹果增减

7、程序框图5.撞墙事件把蛇当前所在的位置的坐标与围墙的宽度作比较,如果超出了宽度围则视为撞墙事件游戏结束,否则游戏继续。在设计程序中运用了两个、两个和一个逻辑与运算符号参与编辑,通过X、Y坐标与World Size作比较,最后结果为真则游戏继续,否则游戏结束。 图7 撞墙事件程序框图6.自杀事件自杀事件比撞墙事件复杂,不过思路都一样,都是通过坐标的比较来判断。不同是的自杀事件是通过判断蛇头的坐标与蛇身的坐标是否一致,如果一致则认为发生了自杀事件,并跳出循环结束游戏,否则游戏继续。再此VI中运用了两个条件结构来判断是否结束程序;运用一个WHILE循环比较蛇头与蛇身的坐标,当蛇头坐标与蛇身坐标一致时

8、跳出循环游戏结束(只有当蛇的位移坐标有两个以上时才开始判断是否发生自杀事件)。以下是本VI的程序框图:图8 自杀事件程序框图3.3 程序存在的不足(一)、时间太过仓促,本程序在设计上存在一些不足。程序初始化时蛇身过长。虽说在设计程序时有专门控制蛇身长度的控件,可是在修改初始化时蛇身长度的数值后蛇身的长度依然没有太多的变化。(二)、我看不懂的部分程序由于程序很复杂,我有很多看不懂的地方,例如,我不知道子VI是如何运用的。在程序中常用子VI,这虽然便于简化程序框图,却给我读程序造成很大的不便。不便的原因主要是在上课实践过程中没有运用过子VI完成作业或者做练习,虽然我在潜意识里知道子V I的用途很大

9、。看着遍布程序框图的子VI我不知道它怎么运用、为什么这样运用,练习子VI的原程序框图了解该子VI后我还是不知道如何运用。4 结果及性能分析4.1 运行结果 1.未运行的时候前面板如图9 图9 未运行时前面板 2.运行的时候前面板如图10 图10 运行时的前面板4.2 性能分析在游戏设计过程中,我们遇到了一个又一个问题,如何显示蛋,如何吃掉蛋,如何吃掉蛋之后让蛇加一截,如何让蛇撞墙之后结束游戏.发现问题和解决问题的过程都是艰辛且快乐的。对于最后的成品,已经基本上达到了我们的预期。另外,这款游戏的后续开发空也间很大,可以添加很多想法,比如可以增加蛋的数量,可以增加蛋的品种,对于不同的蛋产生不同的特效,可以有突然改变方向、突然改变速度、增长蛇身长度、无敌小蛇(无死亡限制)等等,由于时间有限,这些想法没有一一去实现,但我们仔细考虑下这些都是可行的。比如增长蛇身长度,可以根据当前得分,在蛇尾按方向方向反方向增加蛇数组元素,当然这可能导致小蛇立刻死亡,当然这可以作为游戏的一个难度,需要玩家在适当的方向吃小蛋等等。参考文献l labview入门与提高.品编著.人民邮电.2000.112 labview完全自学手册.龙马工作室编著.人民邮电2005.10.23 虚拟仪器设计基础教程. 黄松岭编著. 清华大学.2008.11

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

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