看我用LabVIEW写一个情人节的小礼物!!!

写在最前:
我是汽车NVH工程师,但我的生活也离不开代码,那么就用我最熟悉的“(编程)语言”,趁着情人节主题征文活动,送各位一个小礼物吧~
在这里插入图片描述
今年的情人节在春节中度过,不知道是好是坏?
不论是学生,还是刚参加工作的,在这情意满满的寒假春节里,只要没带回家,那么对另一半的思念也就只能在微信、视频中流露~
那么,送他/她一个有趣的小游戏,在游戏中回味美好的经历,是不是一份很有意思的创意~
今天,就来用LabVIEW编写一个情人节的浪漫拼图游戏,用各自珍爱的照片作为拼图的样本,拼好照片,回忆美好~
在这里插入图片描述
开发背景:
用LabVIEW写拼图游戏网上已经有了很多案例,但要跟情人节扯点联系还是有点困难。最关键的一个问题,下载的案例都只能拼设置好的图片,难道就不能拼自己喜欢的图片或者拍的照片,那该多好~
所以,花了点时间,在热心网友分享的LabVIEW拼图案例上小试牛刀,增加了如何选择自己喜欢的图片进行拼图,并且优化了下代码架构。

先从用户角度解读该程序:

  1. 运行程序会先自动弹出导入图片的窗口,如下图所示。对于图片,有一个推荐但不强制的要求,就是最好像素大小为750乘以480,这样可以保证最佳效果。这里,就选择这个充满爱的222图片吧~
    在这里插入图片描述
  2. 选择好图片后,系统会自动打乱图片,如下所示,左上角是目标图片,单击右上角可退出游戏,界面中爱心图片作为空格,单击其周边的图片(即爱心图片的上、下、左、右四个图片)可实现位置互换。
    举个例子:比如下图爱心图片位于第三行第二列,那么其周边的图片有三张(上、下、左),可单击任一图片与其互换位置。
    在这里插入图片描述
  3. 经过一番奋战终于拼好图片了,这时系统会恭喜你通关~
    在这里插入图片描述
    当然,一次不过瘾,那么再来一次,重选一张你喜欢的照片吧~
    比如单身狗照片
    在这里插入图片描述
    比如约会的照片
    在这里插入图片描述
    好了,从用户角度看就这么简单。那么开始从程序猿角度观察了~

从程序猿角度观察该程序:
4. 首先分享下该程序的工程,主要包括一个主VI和5个子VI构成;
在这里插入图片描述
5. 一般我阅读别人的LabVIEW程序习惯从主VI开始阅读,跟着主VI的数据流,流到哪个子VI,再去读那个子VI函数。主VI的程序框图如下所示,按照数据流的走向从左至右大致解读下该代码,最左端是导入图片路径的代码;中间主体是条件结构,先是经过顺序结构进行图片解析,并拆分成9个子图片,然后进入while循环进行拼图游戏的主体(while循环里面的内容下面具体展开);当单击停止按钮,或者游戏通关时,结束while循环,数据流走向最后的一个框图,里面就放了一个退出LabVIEW模块,输入为真时就退出LabVIEW,输入为假时不起作用(调试时设为假,不然老是关闭LabVIEW,再打开太麻烦了)。
在这里插入图片描述
6. while循环解读。
局部放大了来看这个循环,循环里面有一大一小两个条件结构,左面的条件结构有两个分支:一是初始化,里面有个子VI用来随机生成1-9不重复的一维数组;二是用户控制,里面放了一个事件结构,包含两个事件:一是停止按钮(没放图),顾名思义就是按下后产生一个为真的布尔值,结束while循环;二是控件组事件,因为UI界面的九宫格其实是9个布尔控件,通过判断哪个布尔被按下了,然后分析按下的那个布尔控件是否有效,从而通过一系列逻辑实现图片的转换。里面两个子VI主要就是用来判断哪个布尔键被按下,再判断按下的布尔键是否有效。左边的条件结构结束后,会产生一个数组长度为9的一维数组,通过一个字VI转为3X3的二维数组并与正确答案进行比较,正确就恭喜通关,不正确,则while循环进行下一轮。同时该3X3的二维数组会更新前面板的九宫图片,右下角的代码就是实现这部分功能的。
在这里插入图片描述
在这里插入图片描述
好了,从程序猿角度看就是这样,具体的子VI其实理解了其功能,编程其实不怎么难,难的是如何写进文章里,这一张张截图加解释,写的我晕头转向。这么想想,还是写代码好呀,逻辑清晰,关键CSDN支持粘贴代码显示。

写在最后:

  1. 程序开发环境:LabVIEW 2017版本
  2. 游戏哪里下载:LabVIEW应用程序下载地址,凡是电脑里安装LabVIEW的程序猿均可下载,安装包如果有需求可留言,有一定量我就生成一个安装包,这样即使没装LabVIEW的电脑也能安装了玩。
  3. 代码哪里下载:后期会同时在CSDN和GitHub里上传源码,迫不及待的可观粉收藏并留言~
  4. LabVIEW技术问题欢迎咨询,互相学习,共同进步吧~

猜你喜欢

转载自blog.csdn.net/Leisure_ksj/article/details/113746488