基于Labview2017的2048游戏(极详细)

设计过程

前面板布局

	最近在学习Labview,突发奇想,试试写一个2048小游戏,做工粗糙,但能实现游戏目标。过程显示使用下拉图片的4*4二位数组实现,方向键使用自定义确定按钮,

主界面前面板
程序框图,用了简单的循环

图片设计

由于不想去画图片,数字显示是从网上截的,箭头没有找到合适的,自己使用电脑自带的画图软件画的。
自定义控件创建过程:
放置一个控件→制作自定义类型→打开自定义类型→右击控件→从剪贴板导入→选择真假导入
图片下拉列表导入选择在前面/后面导入为将剪贴板的图片插入至当前图画的前面/后面,而剪切板导入会更新你当前选择的图片。
图片导入结果
箭头图标及其自定义控件

初始化

游戏初始化时会在游戏界面中创建两个1,即图标显示为二的图片,使用两个0~3的随机整数得到横纵坐标,为防止两个随机坐标一致,在第二个坐标后添加判断依据,如果出现重复,执行while循环再获取一次坐标,直到第一和第二坐标不一致跳出循环,得到初始化的图形。
初始化
初始化图形

移动实现

数字的移动和合并是整个游戏最难的地方,我思考半小时确定了一个大致的方向:将4*4二维数组分列计算,共计算4次,以上移为例,第一行数组进入移动VI,先将数组中的0删除,得到非0数组,进入合并VI,合并VI中,会依次检查0和1,1和2,2和3三队数据,如果0和1数据相同,则将索引为o的数据+1,将索引为1的数据转变为19(这个值无特殊意义,19是这个游戏中用不到的值。),将结果传送到移位寄存器,进行下一次判断,若0和1不相同,将直接将数据加入移位寄存器。合并结束后,将数据中的所有19元素删除,此时,输出数据长度再0~4之间,要保证数据长度一致,需要在后面将数组长度换还原为4位,移动和合并功能实现,将二维数组进行倒置,上移动功能实现,下、左、右功能依托于此添加数组倒置亦可实现。
上图
移动VI程序框图
0和1相同
0和1不同
删除19
还原数组长度
下、左、右实现

随机值添加

依据游戏规定,每次移动后能够会增加一个2或4,若无法移动,则游戏结束,该实现方法为:获取及记录白色图片坐标→随机抽取一个坐标→将该坐标按照7:3的几率输出2和4,如果白色坐标值为零,游戏结束。
随机值添加

游戏积分记录

积分记录,使用数组最大值与最小值将最大积分提取出来,与时间合并写入文档。积分和时间记录

积分排序

积分排序使用选择进行判断,在游戏开始阶段读取积分记录,积分排名实现:使用正则表达式将积分记录转变成数组,是其一个时间一个积分为一个元素,将每个元素中积分使用正则表达式提取出来,使用字符串转换为十进制数,从大到小排序,以此对时间积分数组进行排序输出。
积分排序和时间排序两种不同的排序

结语

游戏设计过程结束,游戏整体粗超,但不影响运行,还有许多改进地方:
1:游戏开始结束界面
2:过程音乐添加
3:结束条件判断
4:界面布局
5:搭配键盘使用

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值