labview贪吃蛇程序Word格式文档下载.docx
《labview贪吃蛇程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《labview贪吃蛇程序Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
主要是在游戏失败时,显示游戏结束。
2小蛇控制方法
小蛇的控制主要有这几方面构成,开始游戏后小蛇就要按照一定的方向不停地移动,通过键盘方向键控制小蛇移动方向(由于设置上、下、左、右四个方向,其中有两对是互斥的方向,需要加以控制以禁止,否则小蛇在反向的时候会撞到自己),遇到蛋时,需要增加蛇身长度。
2.1小蛇的运动
由于蛇本身是一个可增加元素的数组,所以用一个含两个一维方向数组的簇来进行操作。
小蛇自动不停移动的程序,然而为了使之后与小蛋碰撞后能便捷的增加长度,这里采用这样的方法实现:
小蛇没按方向移动一个,就在小蛇数组的开头添加一个点(此时这两个点是相邻的),然后将添加的点与蛋所在坐标比较,如果不同,就将蛇数组的最后一个元素删除,表示没有吃到蛋;
如果相同,就保留这个元素(此时,相对于前一个位置时,小蛇的长度增加了),并且删除这个蛋,重新随机产生另一个蛋。
循环往复(在while循环上添加移位寄存器)直到游戏结束。
插入蛇头新坐标的子程序如下:
未输入时延时为150ms
当没有吃到删除小蛇尾部子程序:
当有吃到删除小蛇尾部子程序:
2.2键盘控制小蛇游走方向
这部分采用一个事件结构,当键按下时,通过判断类型是否相等,类如当按下左时显示left为真,事件结构输出为left到外部条件结构中。
有子程序可以看出,右+1,左-1,上-1,下+1,都是蛇头相对于墙壁的距离。
2.3撞墙和自杀
这里讲一下我们对于小蛇撞墙或者自杀的情况。
撞墙的意思是小蛇碰到了周围的墙壁,这需要从蛇数组中获取当前新添加的元素,然后与边缘(0,13)(13,0)比较,当超过这个边缘时,就跳出一级循环,游戏结束。
图一
图二
图三
其中图一表示蛇头的位置,数组索引第一位,图二中索引产生的蛇头的2维坐标xy,当x>
13或X<
0,Y>
13或Y<
0时蛇头出界,为或,任何满足条件的游戏结束。
自杀的情况比撞墙较复杂蛇头与蛇尾的索引一样时就认为发生了自杀,并跳出循环结束游戏。
3小原点的位置随即产生一个0-1的随即数字,乘于14后产生一个2维数组。
4.
表示游戏界面的大小为14x14
5.
小蛇的初始位置的第一二三点位置分别为(1,0),(1,1),(1,2),初始小圆点位置为(7,7)
6.
由上往下分别为:
小蛇的初始位置,初始方向,原点的初始位置。
7:
本程序用到的结构及元件:
For循环:
将连接到总数(N)接线端的值n作为执行次数的子程序框图。
计数接线端(i)提供了当前的循环总数,其取值在0到n-1的范围内。
While循环:
重复执行内部的子程序框图,直到条件接线端(输入端)接收到特定的布尔值。
将布尔值连接至While循环的条件接线端。
右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
也可将一个错误簇连线至条件接线端,右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
While循环永远至少执行一次。
条件结构:
包括一个或多个子程序框图,或分支,当结构执行时,仅有一个子程序框图或分支在执行。
连接至选择器接线端的值可以是布尔、字符串、整数,或枚举类型,它决定了执行哪个分支。
右键单击结构边框,可添加或删除分支。
Us可使用标签工具来输入条件选择器标签的值,并配置每个分支处理的值。
三、总结
Labview是一种用图标代替文本行创建应用程序的图形化编程语言,还有很多外观和传统仪器类似的控件,可以用来方便的创建用户界面,在测试、测量和自动化等领域具有很大的优势。
它被广泛地应用到汽车、通信、航空、半导体、电子设计生产等各个领域,如果我们很好的掌握了labview,我相信会对未来的发展有很大的帮助。
在交这份作业的时候遇到了不少的困难,还好有老师和同学们的帮助,也算是完成了这次编程,尽管过程很艰难,但是收益颇多。
上课老师以自主学习为主,也做了很多的练习,但是面对这面作业还是有些无从下手。
上课时做的练习老师会给我们一个问题,让我们从书中找到相关知识然后去解决问题,所以当老师说要自己准备编程内容的时候,内心还是很慌。
先前用labview做了超级玛丽奥投火球的小游戏,觉得很有趣,没想到labview还可以用来玩游戏,所以决定这次再次编程小游戏——贪吃蛇。
万事开头难,首先要解决怎么让一个点在xy图上动起来,当然后面会遇到更多的问题,比如怎么吃掉一个点之后蛇的长度就加一个点,怎么在撞到边界的时候使游戏结束。
问题一个接一个,很艰辛但是也很快乐,做出来贪吃蛇之后心里有中无比的满足。
贪食蛇是一个简单的休闲游戏,但在编程过程中学会了怎么发现问题解决问题,也锻炼了我的思维能力,我相信学好labview对我以后的学习会有很大的帮助。
最后感谢王文静老师这个学期对我们的殷勤指导,感谢您为学生的付出,您的课上得十分生动有趣。
真诚的感谢!