欢迎来到天天文库
浏览记录
ID:26516592
大小:246.00 KB
页数:11页
时间:2018-11-27
《11电气自动化-111102106--火亚超基于labview的贪吃蛇游戏程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、<基于labview的贪吃蛇游戏程序设计姓名 火亚超学号111102122专 业电气工程及其自动化指导教师 陈永超 成绩日 期 2014.06<1设计实现的基本要求本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。2贪吃蛇游戏设计原理贪吃蛇游戏大体上可分为以下几个部分:1)控制部分就是通过输入输出来控制蛇的运动
2、2)逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算3)图象显示部分就是将游戏显示出来本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋;4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续;5.游戏可以有多种难度选择等3贪吃蛇游戏设计与仿真3.1前面板设计采用LabVIEW中提供的“ExpressXY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。对XY图的属性做如下修改:1
3、.去除标尺及标签,设置标尺为0:1000;2.去除两个方向的网格,使最终屏幕全黑;3.修改各条曲线的宽度、颜色和点样式,使小蛇苹果能够以不同样式显示。9<图1主程序前面板3.2后面板程序框图设计如何控制蛇移动去吃苹果同时避免碰到自己的身体或者撞墙是一个复杂的程序。特此将程序分成多个子程序来编写使程序简单明了。下面分别介绍贪吃蛇程序中的各个子程序。1.主程序程序框图主程序程序框图运用平铺式顺序结构,第一帧是游戏介绍,第二帧是程序主程序。在主程序的上半部分采用一个while循环、一个事件结构和一个条件结构来设置游戏的输入循环,根据按键以否来
4、判断游戏的下步动作方向。在主程序的下半部分运用while循环来控制游戏的循环。游戏结束时通过用户的输入指令来决定游戏是否循环,输入“是”指令时游戏继续,否则游戏结束跳出循环。在while循环里再运用一个while循环来控制游戏的运动循环,当发生“自杀”事件或者9<“撞墙”事件时游戏结束跳出循环,否则游戏继续循环。图2主程序程序框图2.XY坐标子程序此程序的作用是把蛇的活动按有无蛇身、苹果赋值。通过XY坐标来显示蛇移动的轨迹,同时删除已走过的轨迹路径,避免与新的路径混淆使程序出错。程序框图见下面:图3输入XY坐标图4删除XY坐标9<3.小
5、蛇的移动控制由于蛇本身是一个可增加元素的数组,所以用一个含两个一维方向数组的簇来进行操作。每次读取坐标或者增添完坐标后都要用簇解绑及簇捆绑来处理,这样也便于在XY图中显示。控制小蛇游走的方法是给定一个方向,然后利用这个方向的值来控制当前点与下一点的变换。小蛇不停的移动,为了使之与苹果碰撞后能便捷的增加长度,这里采用这样的方法实现:小蛇每按这个方向移动一个,就在小蛇数组的开头添加一个点(此时这两个点是相邻的),然后将添加的点与苹果所在坐标比较,如果不同,就将蛇数组的最后一个元素删除,表示没有吃到苹果;如果相同,就保留这个元素(此时,相对于
6、前一个位置时,小蛇的长度增加了),并且删除这个苹果,重新随机产生另一个苹果。循环往复(在while循环上添加移位寄存器)直到游戏结束。插入蛇头新坐标的子程序框图图5蛇头新坐标的子程序框图4.苹果增减的控制对于苹果的操作主要是判断当前苹果的位置与蛇头位置是否相同,在相同的情况下,需要将苹果的位置重新赋值,这是处理一个苹果的时候。如果要设计多个苹果,只需判断当前苹果的个数是否减少,并在减少后随机产生一个新的苹果。程序里一次性最多可以产生20个苹果,用数组存储。当苹果的数量明显少于最大值时就随机产生一个苹果。当蛇头与苹果的位置相同时消掉该苹果
7、,否则保留该苹果。为了便于苹果与蛇同时在屏幕上显示,特将苹果套用蛇数组的格式绑定为簇,然后与蛇数组合并为一个数组后同时显示在XY图上。9<图6苹果增减程序框图5.撞墙事件把蛇当前所在的位置的坐标与围墙的宽度作比较,如果超出了宽度范围则视为撞墙事件游戏结束,否则游戏继续。在设计程序中运用了两个<、两个>和一个逻辑与运算符号参与编辑,通过X、Y坐标与游戏界面大小作比较,最后结果为真则游戏继续,否则游戏结束。图7撞墙事件程序框图6.自杀事件自杀事件比撞墙事件复杂,不过思路都一样,都是通过坐标的比较来判断。不同是的自杀事件是通过判断蛇头的坐标与
8、蛇身的坐标是否一致,如果一致则认为发生了自杀事件,并跳出循环结束游戏,否则游戏继续。再此VI中运用了两个条件结构来判断是否结束程序;运用一个WHILE循环比较蛇头与蛇身的坐标,当蛇头坐标与蛇身坐标一致时跳出
此文档下载收益归作者所有