Labview学习之2048小游戏

Labview学习之2048小游戏

在写2048小游戏时,时间比较赶,再加上并没有在网上找相应的例子,所以感觉这次写的比较杂乱,在解决一些问题时使用了些笨方法。

整体思路:

整体思路很简单,通过控制二维数组值的改变前面板中相应颜色格控件的颜色及数字;主要还是对二维数组的逻辑处理。

主要分为以下几个VI:

 

2048.VI为主VI 主要就是一个while循环内放置一个事件结构,事件结构内响应键操作处理数组,超时事件内处理将数组映射到颜色格控件;

其中通过数组的值改变颜色控件的颜色及文字是直接使用控件的属性值与标题完成的。数字即为控件的标题。

 当然在进入循环之前需要对数组初始化:

 下面是键按下时的操作:

每次键按下会判断一次游戏是否结束,然后对相应的上下左右键响应相应操作。

 以上就是主VI的全部,下面来依次看下子vi。

主要功能实现是 判断数组前方是否为0并前移.VI,判断相邻是否相等并相加.VI,还有随机生成2或4.VI.其中还是有些逻辑比较费脑的。

判断前方是否为0并前移.VI 如下:

该vi只是对一位数组的操作。实现过程为,先将数组内元素为0的索引放置到一个数组,再通过索引将所有为0的元素删除。最后删除了多少个0元素再在数组后面添加几个0。这样就实现了前方为0并前移的效果。

判断相邻是否相等并相加.VI 如下:

该vi也只是对一位数组的操作。实现过程为判断通过数组索引FOR循环,在循环内判断当前元素不为0且与上一元素相等,相等的话将当前元素值变为0,将上一个元素值变为值的两倍。这样就实现了相邻相等即相加的效果。

随机生成2或4.vi如下:

该vi也只是对二维数组的操作。实现过程首先将二维数组内所有元素为0的索引找出存放在另一个二维数组内,然后随机生成一个小于此数组长度的整数,提取出来一组索引数据;然后将该索引的数组元素更改为2或4。即实现了在二维数组内随机生成2或4的功能。

 

DOWN.VI如下:

处理的为二维数组,步骤为,先将二维数组按列分为多个一维数组然后倒置,将一维数组先判断前方是否为0并前移,然后判断相邻是否相等并相加,然后再判断前方是否为0并前移,然后倒置并将数组替换为原数组。然后随机生成2或4.即可。

 up.vi如下:

与down实现相同,只是少了两个数组倒置,实现上下相反的操作。

left.vi与Right.vi如下:

与上下操作一样,只是将以列分为一维数组更改为以行分为一维数组。左右操作也只是差别再两个倒置。

 

 

 

 

判断结束VI 需要与2048.vi的这段框图一起来看

判断结束VI如下:

如果当前数组与上下左右操作后的数组全部一样,即判定当前游戏结束。

以上即时全部。耗时4个小时写好,1个小时验证并生成EXE。框图还是有点乱,但运行未发现BUG。

程序上传至百度云。需者自取:

链接: https://pan.baidu.com/s/10CUsPbb6RJrFHWyFB75Nrw 提取码: b66x

 

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值