找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6578|回復(fù): 3
收起左側(cè)

LabVIEW貪吃蛇程序設(shè)計

[復(fù)制鏈接]
ID:544367 發(fā)表于 2020-5-24 12:28 | 顯示全部樓層 |閱讀模式
本程序是基于常看到的一款小游戲貪吃蛇而設(shè)計的,即有一條小蛇不停地在屏幕上游走,吃各個方向上出現(xiàn)的食物(姑且稱它為“食物”),越吃越長,只要蛇頭碰到屏幕四壁或者碰到自己的身子,游戲就立刻結(jié)束。本程序基于傳統(tǒng)貪吃蛇游戲的特點利用LabVIEW制作的一款完整的迷你貪吃蛇游戲。
2.1系統(tǒng)功能
(1)小蛇在屏幕上不停的游走;
(2)用鍵盤左右方向鍵可控制小蛇的移動方向;
(3)吃過一個食物后小蛇長度增加并隨機產(chǎn)生另一個食物;
(4)小蛇碰到四壁或者碰到自己的身體時游戲結(jié)束并給出得分和提示是否繼續(xù);
(5)游戲可以有多種難度選擇等。
2.2系統(tǒng)軟件組成
整個系統(tǒng)由前面板和程序控制框圖兩部分,其中程序控制框圖又分為XY坐標(biāo)子程序,小蛇的移動控制模塊,食物增減的控制,.撞墻事件和自殺事件模塊,還有最為重要的主程序程序框圖。
2.3主程序組
主程序的組成:包含了一個主要while循環(huán)結(jié)構(gòu)及分支while循環(huán)、順序結(jié)構(gòu)、條件結(jié)構(gòu)、初始化局部變量分?jǐn)?shù)、初始化變量模塊子VI、按鍵值賦值模塊子VI、根據(jù)按鍵值定義蛇動作模塊子VI、顯示二維數(shù)組賦值模塊子VI、判斷能否繼續(xù)游戲判定子VI、食物隨機生成子VI、蛇吃到食物處理子VI、蛇移動子VI。分?jǐn)?shù)顯示模塊:放在吃掉食物為真的情況下,不斷加1達(dá)到分?jǐn)?shù)累計的作用。
2.4 軟件設(shè)計思想
進(jìn)入游戲界面之后可選擇游戲難度。程序隨機定位貪吃蛇初始位置,當(dāng)然也可以選擇退出游戲。開始之后便進(jìn)入游戲。其流程圖如下。
1.png
                                               圖2-1主程序流程圖
第三章 系統(tǒng)軟件部分設(shè)計
3.1系統(tǒng)整體程序框圖
系統(tǒng)整體程序框圖就是用戶所編寫的主程序,也就是用戶界所對應(yīng)的底層程序,其中包括整個程序的運行控制,事件結(jié)構(gòu)的設(shè)置,調(diào)用各種子程序的命令。

2.png
圖3-1 貪吃蛇小游戲系統(tǒng)程序框圖
3.2.系統(tǒng)前面板界面
圖3-2為用戶界面,用戶界面的實現(xiàn)主要依靠 LabVIEW 提供的各種顯示控件,包括波形顯示控件、數(shù)據(jù)顯示控件,指示燈顯示報警控件等。程序運行時,用戶可以在前面板進(jìn)行控制,同時后面板也在運行,只是用戶只需要控制前面板就可以了,如果需要更改程序時,就可以在后面板更改程序功能[41]。

3.png
圖3-2貪吃蛇小游戲系統(tǒng)前面板
下面將詳細(xì)介紹各個模塊的設(shè)計原理。
3.3各部分模塊子程序設(shè)計原理
本系統(tǒng)的軟件測試部分主要包括以下幾個模塊:XY坐標(biāo)模塊、小蛇的移動控制模塊、食物增減的控制模、自殺事件模塊和撞墻事件處理模塊。
4.png
圖3-3系統(tǒng)軟件設(shè)計部分組成框圖
3.4 XY坐標(biāo)模塊
    此程序的作用是把蛇的活動按有無蛇身、蘋果賦值。通過XY坐標(biāo)來顯示蛇移動的軌跡,同時刪除已走過的軌跡路徑,避免與新的路徑混淆使程序出錯。是這樣實現(xiàn)的:先把原來的x,y數(shù)組簇按名稱解除捆綁,然后用兩個替換數(shù)組子集,這樣就可以用新的x,y坐標(biāo)替換原本的x,y坐標(biāo),新的x,y坐標(biāo)按名稱捆綁,然后輸出新的x,y坐標(biāo)簇。同時把原來的x,y坐標(biāo)簇按名稱解除捆綁,用兩個刪除數(shù)組元素刪除原本的x,y坐標(biāo)簇,從而實現(xiàn)功能。程序框圖見下面:


5.png
圖3-4輸入XY程序框圖


6.png
圖3-5刪除XY坐標(biāo)模塊
7.png
圖3-6 XY坐標(biāo)前面板顯示
3.5小蛇的移動控制模塊模塊
由于蛇本身是一個可增加元素的數(shù)組,所以用一個含兩個一維方向數(shù)組的簇來進(jìn)行操作。每次讀取坐標(biāo)或者增添完坐標(biāo)后都要用簇解綁及簇捆綁來處理,這樣也便于在XY圖中顯示。
控制小蛇游走的方法是給定一個方向direction,然后利用這個direction的值來控制當(dāng)前點與下一點的變換。小蛇不停的移動,為了使之與蘋果碰撞后能便捷的增加長度,這里采用這樣的方法實現(xiàn):小蛇每按direction移動一個,就在小蛇數(shù)組的開頭添加一個點(此時這兩個點是相鄰的),然后將添加的點與蘋果所在坐標(biāo)比較,如果不同,就將蛇數(shù)組的最后一個元素刪除,表示沒有吃到蘋果;如果相同,就保留這個元素(此時,相對于前一個位置時,小蛇的長度增加了),并且刪除這個蘋果,重新隨機產(chǎn)生另一個蘋果。循環(huán)往復(fù)(在while循環(huán)上添加移位寄存器)直到游戲結(jié)束。插入蛇頭新坐標(biāo)的子程序框圖如下

51hei.png
51hei.png

labview設(shè)計51hei加程序.zip

1.26 MB, 下載次數(shù): 94, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:764645 發(fā)表于 2020-5-30 12:28 | 顯示全部樓層
感謝樓主的分享
回復(fù)

使用道具 舉報

ID:854774 發(fā)表于 2020-12-8 22:23 來自手機 | 顯示全部樓層
樓主,這個程序怎么打開呀,怎么運行不了顯示有錯誤呀
回復(fù)

使用道具 舉報

ID:932703 發(fā)表于 2021-6-16 08:45 | 顯示全部樓層
朋友這個壓縮包缺代碼吧
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表