【LabVIEW】基于LabVIEW的贪吃蛇小游戏


这个贪吃蛇小游戏是在b站上看到的,逻辑挺简单的,加上自己的思路和优化了下改了些小BUG,总体玩起来还可以。
这个贪吃蛇小游戏程序主要有程序的初始化,确认贪吃蛇的位置信息,贪吃蛇的移动,贪吃蛇的food随机产生,判定food被吃掉,判定游戏失败,改变贪吃蛇的移动方向等。
游戏前面板如下图所示
在这里插入图片描述
前面板控件对应的程序框图如下图所示。
在这里插入图片描述

一、程序初始化

该程序的初始化主要有游戏界面,按键是否可以按下,贪吃蛇移动方向,贪吃蛇位置、长度,随机food,游戏状态的初始化。

一、游戏界面的初始化

使用初始化数组生成一个30*30的游戏界面
在这里插入图片描述
在游戏界面初始化应提前于贪吃蛇的位置信息和food随机位置信息的初始化之间,同时初始化了贪吃蛇的移动方向、速度、游戏状态和按键许可。

二、贪吃蛇的位置信息初始化

使用索引数组、for结构、替换数组子集产生一个长度为4的贪吃蛇。
在这里插入图片描述在这里初始化的是一个长度为4的贪吃蛇,按这游戏规则一般贪吃蛇出现的位置是固定的,所以蛇的位置信息应提前于food,根据蛇的位置信息来判断food随机出现的位置。

三、food的位置信息初始化

通样使用替换数组子集产生随机food。
在这里插入图片描述
food的产生都是随机性的,同时不可以于蛇的位置信息重叠。同时使用簇来记录food的位置信息和状态信息,以方便得到贪吃蛇是否吃到food和food的再次随机刷新。

二、确认贪吃蛇的位置信息

想要贪吃蛇能够做到移动,我们需要确认贪吃蛇的头位置信息和长度信息
在这里插入图片描述
这里使用了数组大小和索引数组分别获得贪吃蛇的长度信息和头位置信息

三、贪吃蛇的移动和是否吃到food

在这里插入图片描述
贪吃蛇的移动就根据贪吃蛇的移动方向信息进行判断,控制对行或列进行加1或减1的操作。主要是在是否吃到food进行贪吃蛇的长度控制,这里就是进行头的位置信息和food的位置信息进行对比从而确定是否吃到food,当没有吃到food如上图所示进行使用替换数组子集将下一个位置信息点亮,同时熄灭最后一个位置信息。当吃到food就不进行熄灭操作,同时改变food的状态信息如下图所示。
在这里插入图片描述
当贪吃蛇移动一次为了避免快速按键操作这里有一个按键是否按下的布尔赋值来控制按键操作。

四、贪吃蛇的按键操作

这里直接是使事件中的本VI,键按下,V键来控制贪吃蛇的运动方向,在这里改变方向否不可以直接再次改变移动方向这里就要使用移动中的按键是否按下标志信号,只有当改变方向后运动一次后才能再次改变方向,同时当贪吃蛇向一个方向运动时不能改变到相反的方向进行操作如上转下,下转上,左转右,右转左。

一、上

在这里插入图片描述

二、下

在这里插入图片描述

三、左

在这里插入图片描述

四、右

在这里插入图片描述

五、再次获得贪吃蛇的位置信息

当贪吃蛇位置改变后应马上获取其位置信系,否则可能出现数据错误
在这里插入图片描述

六、贪吃蛇吃点food后产生随机dood

在这里插入图片描述
这里就根据food状态信息,通过0-1随机数产生与贪吃蛇不重叠的food,同时更新food的位置信息和状态信息。

七、游戏失败

这个游戏失败有两种可能一是撞墙,二是头碰到的身体。

一、撞墙判定

在这里插入图片描述
这里是30*30的游戏界面只要头位置信息小于0或大于29贪吃蛇就相当于撞墙。

二、头触碰身体判断

在这里插入图片描述
这里就是贪吃蛇头没碰墙时,使用for结构获取除头以外的位置信息,与头的位置信息作比较当有相同的信息就说明贪吃蛇头碰到了身体。

七、游戏难度控制

这里直接是根据贪吃蛇的长度来改变游戏难度。
在这里插入图片描述

八、感觉

这个游戏编写挺容易理解的,就最多调试一下一天就能完成。

发个牢骚,有没有武汉的啊,才来武汉,周末好无聊,我想有人一起出去玩。

九、VI分享

链接

https://blog.csdn.net/li_lys/article/details/124870664?utm_source=app&app_version=5.4.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
在这里插入图片描述

  • 19
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值