写在最前:
我是汽车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. 源码哪里下载:LabVIEW拼图游戏源码下载地址,开发环境LabVIEW2017。
  4. LabVIEW技术问题欢迎咨询,互相学习,共同进步吧~

看我用LabVIEW写一个情人节的小礼物!!!(源码见最后链接)相关推荐

  1. python测试开发自学教程-Web开发哪家强?看我用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

  2. python测试开发小工具_Web开发哪家强?看我用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

  3. 三分钟手写一个迷你jQuery,附源码

    诚然,不管前端技术怎么发展,重心都不会变,就是 操作DOM + 获取数据. 下面的代码演示了如何快速手写一个简单的jQuery: <!DOCTYPE html> <html lang ...

  4. 挑战一天开发一个前后端小程序系统|源码公开,开箱即用

    有个小伙伴找到我开发一个系统,这次他要考验我的效率,第一次遇到这种条件的. 一周开发出来给2000,3天开发出来4000,一天开发出来给5000. 都这样说了,那我还拖什么? 系统完事后,和他商讨了一 ...

  5. OpenCV2.3的cvCalcHist函数有问题?255级值总为0,索性自己写一个直方图计算函数,附源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我在写直方图规定化的代码过程中,发现OpenCV ...

  6. 500 行代码写一个俄罗斯方块游戏(附源码)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 导读:本文我们要制作一个俄罗斯方块游戏. 作者 | 派森学python 来源 | https://segmentfault.com/a/1 ...

  7. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起. 很多人学习 ...

  8. 用Windows自带的工具写一个一键关机小程序

    如何用Windows自带的工具写一个一键关机小程序 工具/原料(打勾勾的可用可不用) 装有Windows系统的电脑 在机子上装个格式工厂(版本随意,最好更新到最新的) 制作环境 windows自带命令 ...

  9. 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)

    作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...

最新文章

  1. [Go]在vscode中添加对模板文件tmpl的html语法自动补全的支持
  2. Ubuntu下apt-get命令详解
  3. EBCDIK,EBCDIC,ASCII,shift JIS間の変換
  4. C#基础回顾:GridView全选演示
  5. php常用操作数组函数,PHP常见数组函数用法小结
  6. 每日记载内容总结22
  7. java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized
  8. git clone 速度过慢
  9. Github:深度学习文本检测识别(OCR)精选资源汇总
  10. 从spring容器中获取对象工具类
  11. 一开电脑都是广告,请问怎么永久关闭?
  12. python两大特性与四大语法_Day 1:Python 两大特性和四大基本语法
  13. 2011-8-4 今天完成了去掉上传文件(input type=file)的框框 哎 人家客户不要框框。...
  14. Hbase+Zookeeper配置与安装
  15. layer子父传值(1)
  16. 编译报错R_ARM_THM_MOVW_ABS_NC against `a local symbol
  17. 南柯服务器压力,有关性能测试结果的几点分析原则
  18. 弱网测试之NEWT(Network Emulator Toolkit)
  19. 搜狗搜微信链接为什么老是失效?
  20. mysql备份数据库某表格_MySQL备份:使用自动轮换表格备份,轻松恢复部分/完整数据库...

热门文章

  1. 删前看 | 震惊!淘宝双十一的惊人内幕!
  2. 标题栏的滑动隐藏和显示是怎么实现的?
  3. el-calendar日历的各种样式及事件
  4. 新版idea右下角没有小人头的解决设置
  5. JavaWeb项目之租车系统管理系统
  6. Linux命令之date命令
  7. Mycat读写分离的简单实现
  8. 软件测试之移动端自动化测试
  9. 牛客网——华为题库(71~80)
  10. WORD中字数和字符