Labview邪修01:贪吃蛇

从博主很小的时候就在掌机上玩过这个贪吃蛇的小游戏,突然有一天心血来潮的想Labview是不是也可以编这个小游戏,回忆一下童年!然后就又了下面的这个程序,执行结果如下图所示。

基本功能:

1)点击开始按钮,可以随机生成长度为3的蛇和食物;

2)可以调整蛇的移动速度,低速、中速、高速;

3)键盘上的方向按钮可以控制蛇的运动方向;

4)游戏结束的条件:蛇头撞到边界或自己身体;

运行环境:

Labview 2020(32位)

1.1 界面设计

1.1.1 显示控件

下图是界面中露出的控件:

1)游戏界面,添加了颜色盒的二维数组

经典颜色盒,右击->经典->经典数值->经典颜色盒;

然后将颜色盒拖拽到数组中,形成游戏界面。

2)添加速度控制控件

枚举,右击->银色->下拉列表与枚举->枚举;

然后编辑,慢速、中速、快速。

3)添加按钮

添加两个按钮,开始、结束。

1.1.2 局部变量

界面中没有露出的控件:

蛇坐标,U32类型的二维数组,用于存储蛇的坐标;

3个颜色盒,分别用于设置游戏背景、Food颜色、蛇颜色;

方向控件,枚举控件,上、下、左、右四个内容,用于显示蛇的运动方向;

Food位置,U32类型的一维数组,用于存储Food位置;

Start?布尔显示控件,用于显示是否开始,若开始对蛇的位置实时显示、判断;

1.2 程序编写

程序的流程图如下所示:

1.2.1 项目结构

Main.vi,是整个程序的入口vi;

Start.vi,点击开始按钮执行的vi,是用来初始化蛇的位置和食物的位置;

SnakePos.vi,用于计算蛇的位置;

Loop.vi,用于执行超时事件中的内容;

Crash.vi,用于判断蛇是否撞击边框或自己,游戏结束;

FormCtrl.ctl,界面控件的引用组成的自定义控件;

1.2.2 开始事件

1)开始事件中的内容

主要是调用Start.vi。

2)Start.vi中的内容

自动生成蛇的位置和食物的位置,并且根据位置修改游戏界面中对应位置的颜色。

1.2.3 结束事件

点击结束按钮,即结束游戏并且弹出等分情况。

1.2.4 键按下事件

读取键盘上的方向按键状态,按下后修改蛇的运动方向。

1.2.5 超时

1)超时事件

如果Start?是true,就调用Loop.vi

2)Loop.vi中内容

3)SnakePos.vi中内容

根据方向计算蛇下一步的坐标。

4)Crash.vi中内容

根据蛇的位置判断是不是碰撞,如果碰撞,输出等分情况,并且停止游戏。

1.2.6 关闭前面板

1.3 运行

先选择速度,点击开始按钮,就会随机出现蛇和食物。然后按键盘上的上下左右按键,可以控制蛇方向,蛇与食物 相碰就会吃掉食物,相应的蛇会变长,如果蛇碰撞到边框或者自己的身体就会结束游戏,并且弹出等分。

源码下载链接->https://download.csdn.net/download/weixin_38637405/91802779

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920549.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将自己的jar包发布到maven中央仓库(2025-08-29)

将自己的jar包发布到maven中央仓库(2025-08-29) 一、注册账号 https://central.sonatype.com/ 二、新建命名空间 这里的命名空间需要填写github的用户名因为我的用户名是daimao0,所以命名空间填io.github.daimao0 这里要求你建一个名为ubuxfc5q7r的公共项目,先创…

Spring CompositeCacheManager融合缓存

这是一个非常实用但容易被忽视的组件,它在特定的缓存场景下能提供极大的灵活性。 1. 核心概念:它是什么? ​​CompositeCacheManager​​ 是 Spring Framework 缓存抽象(spring-context模块)的一部分。它的核心作用正如其名——​​组合(Composite)​​。 它本身并不…

无懈可击的 TCP AIMD

不特指 TCP AIMD,而泛指控制范畴的所有 Additive Increase / Multiplicative Decrease 算法,继 难以超越的 TCP AIMD 再叙。 “你永远不能仅凭 BBR 的吞吐更高就说 BBR 比 CUBIC 更好” 这句话怎么总是没人看,这句话是这一系列文章的前提论点…

数据集数量与神经网络参数关系分析

1. 理论基础 1.1 经验法则与理论依据 神经网络的参数量与所需数据集大小之间存在重要的关系,这直接影响模型的泛化能力和训练效果。 经典经验法则10倍法则:数据样本数量应至少为模型参数量的10倍 公式:数据量 ≥ 10 参数量适用于大多数监督学…

项目经验处理

订单取消和支付成功并发问题 这是一个非常经典且重要的分布式系统问题。订单取消和支付成功同时发生,本质上是一个资源竞争问题,核心在于如何保证两个并发操作对订单状态的修改满足业务的最终一致性(即一个订单最终只能有一种确定的状态&…

rabbitmq学习笔记 ----- 多级消息延迟始终为 20s 问题排查

问题现象 在实现多级延迟消息功能时&#xff0c;发现每次消息延迟间隔始终为20s&#xff0c;无法按照预期依次使用20s→10s→5s的延迟时间。日志显示每次处理时移除的延迟时间都是20000L。 问题代码片段 1.生产者 Testvoid sendDelayMessage2() {List<Long> expireTimeLi…

软件测试(三):测试流程及测试用例

1.测试流程1.需求分析进行测试之前先阅读需求文档&#xff0c;分析指出不合理或不明确的地方2.计划编写与测试用例测试用例用例即&#xff1a;用户使用的案例测试用例&#xff1a;执行测试的文档作用&#xff1a;用例格式&#xff1a;----------------------------------------…

Python:列表的进阶技巧

列表&#xff08;list&#xff09;作为 Python 最常用的数据结构之一&#xff0c;不仅能存储有序数据&#xff0c;还能在推导式、函数参数传递、数据处理等场景中发挥强大作用。下面介绍一些进阶技巧与常见应用。一、去重与排序1、快速去重&#xff08;不保序&#xff09;nums …

【完整源码+数据集+部署教程】硬币分类与识别系统源码和数据集:改进yolo11-SWC

背景意义 随着经济的发展和数字支付的普及&#xff0c;传统硬币的使用逐渐减少&#xff0c;但在某些地区和特定场合&#xff0c;硬币仍然是重要的支付手段。因此&#xff0c;硬币的分类与识别在自动化支付、智能零售和物联网等领域具有重要的应用价值。尤其是在银行、商超和自助…

莱特莱德:以“第四代极限分离技术”,赋能生物发酵产业升级

莱特莱德&#xff1a;以“第四代极限分离技术”&#xff0c;赋能生物发酵产业升级Empowering Upgrades in the Bio-Fermentation Industry with "Fourth-Generation Extreme Separation Technology生物发酵行业正经历从 “规模扩张” 向 “质效提升” 的关键转型&#xff…

外卖大战之后,再看美团的护城河

美团&#xff08;03690.HK&#xff09;于近日发布了2025年Q2财报&#xff0c;市场无疑将更多目光投向了其备受关注的外卖业务上。毫无悬念&#xff0c;受外卖竞争和加大投入的成本影响&#xff0c;美团在外卖业务上的财务数据受到明显压力&#xff0c;利润大幅下跌&#xff0c;…

R包fastWGCNA - 快速执行WGCNA分析和下游分析可视化

最新版本: 1.0.0可以对着视频教程学习和使用&#xff1a;然而还没录呢, 关注B站等我更新R包介绍 开发背景 WGCNA是转录组或芯片表达谱数据常用得分析, 可用来鉴定跟分组或表型相关得模块基因和核心基因但其步骤非常之多, 每次运行起来很是费劲, 但需要修改的参数并不多所以完全…

GitHub 热榜项目 - 日榜(2025-08-29)

GitHub 热榜项目 - 日榜(2025-08-29) 生成于&#xff1a;2025-08-29 统计摘要 共发现热门项目&#xff1a;11 个 榜单类型&#xff1a;日榜 本期热点趋势总结 本期GitHub热榜展现出三大技术趋势&#xff1a;1&#xff09;AI应用持续深化&#xff0c;ChatGPT等大模型系统提示…

【深度学习实战(58)】bash方式启动模型训练

export \PATHPYTHONPATH/workspace/mmlab/mmdetection/:/workspace/mmlab/mmsegmentation/:/workspace/mmlab/mmdeploy/:${env:PYTHONPATH} \CUDA_VISIBLE_DEVICES0 \DATA_ROOT_1/mnt/data/…/ \DATA_ROOT_2/mnt/data/…/ \DATA_ROOT_MASK/…/ \PATH_COMMON_PACKAGES_SO…sonoh…

【物联网】关于 GATT (Generic Attribute Profile)基本概念与三种操作(Read / Write / Notify)的理解

“BLE 读写”在这里具体指什么&#xff1f; 在你的系统里&#xff0c;树莓派是 BLE Central&#xff0c;Arduino 是 BLE Peripheral。 Central 和 Peripheral 通过 **GATT 特征&#xff08;Characteristic&#xff09;**交互&#xff1a;读&#xff08;Read&#xff09;&#x…

JavaSE丨集合框架入门(二):从 0 掌握 Set 集合

这节我们接着学习 Set 集合。一、Set 集合1.1 Set 概述java.util.Set 接口继承了 Collection 接口&#xff0c;是常用的一种集合类型。 相对于之前学习的List集合&#xff0c;Set集合特点如下&#xff1a;除了具有 Collection 集合的特点&#xff0c;还具有自己的一些特点&…

金属结构疲劳寿命预测与健康监测技术—— 融合能量法、红外热像技术与深度学习的前沿实践

理论基础与核心方法 疲劳经典理论及其瓶颈 1.1.疲劳失效的微观与宏观机理&#xff1a; 裂纹萌生、扩展与断裂的物理过程。 1.2.传统方法的回顾与评析。 1.3.引出核心问题&#xff1a;是否存在一个更具物理意义、能统一描述疲劳全过程&#xff08;萌生与扩展&#xff09;且试验量…

【贪心算法】day4

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的贪心算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…

AI 与脑机接口的交叉融合:当机器 “读懂” 大脑信号,医疗将迎来哪些变革?

一、引言&#xff08;一&#xff09;AI 与脑机接口技术的发展现状AI 的崛起与广泛应用&#xff1a;近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;已广泛渗透至各个领域。从图像识别、自然语言处理到智能决策系统&#xff0c;AI 展现出强大的数…

uniapp vue3 canvas实现手写签名

userSign.vue <template><view class"signature"><view class"btn-box" v-if"orientation abeam"><button click"clearClick">重签</button><button click"finish">完成签名</butt…