Labview的基礎入門:
我用#CSDN#這個app發現了有技術含量的博客,小伙伴們求同去《LabView學習筆記——簡易入門AND初級實戰專案(計算器)》, 一起來圍觀吧 https://blog.csdn.net/txr152111/article/details/115369513?utm_source=app&app_version=4.5.8
1.基本思路
2.游戲界面初始化
2.1 陣列復習
2.2 設計游戲界面
2.3 蛇資料初始化
3. 蛇的移動函式
4. 隨機蛋的產生
5. 判斷游戲結束
5.1 新建VI(作為可呼叫函式)
5.2 保存檔案
5.3 呼叫檔案
6. 修改顏色
1.基本思路
需要完成的功能:
- 蛇顯示
- 蛇移動函式
- 隨機蛋(蛇吃的)產生
- 蛇吃完蛋變長
- 游戲結束判斷
- 速度調節
2.游戲界面初始化
2.1 陣列復習
新建陣列,命名為游戲界面,將布爾型的方形指示燈拉進去,
陣列:陣列由元素和維度組成,元素是組成陣列的資料,維度是陣列的長度、高度或深度,陣列可以是一維或多維的,在記憶體允許的情況下每一維度可有多達(231) – 1 個元素,
可以創建數值、布爾、路徑、字串、波形和簇等資料型別的陣列,對一組相似的資料進行操作并重復計算時,可考慮使用陣列,陣列最適于存盤從波形采集而來的資料或回圈中生成的資料(每次回圈生成陣列中的一個元素),
陣列中不能再創建陣列,允許創建多維陣列或創建每個簇中含有一個或多個陣列的簇陣列,不能創建陣列元素為子面板控制元件、選項卡控制元件、.NET控制元件、ActiveX控制元件、圖表、多曲線XY圖、多列串列框的陣列,
無論行還是列,都是從0開始索引的,
具體例子可以查閱幫助檔案,

2.2 設計游戲界面
把陣列設定成二維陣列:

初始化陣列

再建一個二維陣列——蛇資料,設定完是這樣的:

2.3 蛇資料初始化
初始化蛇資料,使用“陣列常量”:

*******

初始化游戲界面里的“蛇”:
用“陣列大小”產生蛇的位置,用“索引陣列”函式生成列數,然后作為For回圈結構的回圈次數



3. 蛇的移動函式
移動有四個移動方向,分別為上、下、左、右,
添加一個“字串顯示”控制元件,用來顯示,初始化為右(常量),
在While回圈里添加事件分支,

再設定一個條件結構,并設定條件,

要注意到,蛇在移動程序中,往右走就不能突然往左走,往上走就不能突然往下走,反之亦然,
為了達到這樣的目的,設定判斷,




按上操作后,應該是可以顯示上下左右的,但是往右走就不能突然往左走,往上走就不能突然往下走,反之亦然,
當按下某個方向后,某個動作會一直延續下去,這需要在超時分支里設計程式,
試想移動的本質是什么?運動方向上,頭部亮+1,尾部亮-1,
往上走:列不變,行減1; 往下走:列不變,行加1;
往右走:行不變,列加1; 往左走:行不變,列加1;
首先得知道蛇的長度和蛇頭的位置:


往右走,蛇的行不變,列加1,然后把行資料與列資料拼接在一起(陣列里的“創建陣列”),并把新的蛇頭位置資料添加到“蛇資料”中,不要忘了,把蛇的最末端的資料給刪了(陣列函式里的“洗掉陣列”):

上面的右邊幀所描述的是往右走的時候流程,具體地,應該加入判斷:

為了使結構更加簡單,選擇將相同的部分拿出來,在判斷結構里寫有區別的程式:





這些僅僅是在資料上完成了上下左右,還是需要在“游戲界面”進行顯示效果:


這樣就實作了蛇的上下左右移動,效果如下面影片:

4. 隨機蛋的產生
新建一個“簇”,把蛋蛋的行和蛋蛋的列以及顯示蛋蛋是否存在的指示燈,放到簇中,并進行初始化,

蛋蛋的初始化:

把蛋蛋給顯示出來:

想一想,吃沒吃到蛋有什么區別?如何判斷有沒有吃到蛋?
事實上,只是為移動上末尾有沒有洗掉的問題,主要蛇頭與蛋的坐標相同,即可判斷為吃到蛋,
在撰寫判斷程式上,為了使程式看上去易懂一點,就把后續相同的直接復制到條件框中:
要是沒有吃到蛋,則洗掉蛇尾,即保持長度不變:


總體的(程式太大,沒法截好圖,labview不提供放縮功能):


進一步地,當蛋被吃掉之后,蛋蛋指示燈需要被熄滅:

效果如下:

當蛋蛋被吃掉之后,需要隨機產生一個新的蛋蛋:
說到隨機,想到的是什么???亂數!!沒錯,就是亂數!
用行數、列數與0~1的亂數相乘,得到新的坐標,這個需要在相乘后的數進行取整,為了防止溢位,選擇向下取整,
這里還要考慮,產生的蛋不能落在蛇身上,怎么判斷呢?其實很簡單,只要生成的點是“滅”的狀態,就不是在蛇身上,
下面的程式在理論上還需要優化,因為當蛇很長的時候,就可能出現bug,

運行效果如下:

5. 判斷游戲結束
游戲結束有兩種可能:撞墻了;撞到自己身體了
5.1 新建VI(作為可呼叫函式)


for回圈添加條件接線端:



運行效果:

5.2 保存檔案
把新建的檔案,“蛇資料”與“判斷是否撞死”關聯,并自己設定一個圖示,

保存為“判斷死亡函式”.

5.3 呼叫檔案



6. 修改顏色

這里需要對元素進行顏色替換:




源檔案:這里提供的是未添加顏色的版本
https://wws.lanzous.com/iDGBsnq24fa
密碼:b0op
b站鏈接: https://b23.tv/zLs6B4
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273302.html
標籤:其他
