本程序是基于常看到的一款小游戲貪吃蛇而設計的,即有一條小蛇不停地在屏幕上游走,吃各個方向上出現的食物(姑且稱它為“食物”),越吃越長,只要蛇頭碰到屏幕四壁或者碰到自己的身子,游戲就立刻結束。本程序基于傳統貪吃蛇游戲的特點利用LabVIEW制作的一款完整的迷你貪吃蛇游戲。 2.1系統功能 (1)小蛇在屏幕上不停的游走; (2)用鍵盤左右方向鍵可控制小蛇的移動方向; (3)吃過一個食物后小蛇長度增加并隨機產生另一個食物; (4)小蛇碰到四壁或者碰到自己的身體時游戲結束并給出得分和提示是否繼續; (5)游戲可以有多種難度選擇等。 2.2系統軟件組成 整個系統由前面板和程序控制框圖兩部分,其中程序控制框圖又分為XY坐標子程序,小蛇的移動控制模塊,食物增減的控制,.撞墻事件和自殺事件模塊,還有最為重要的主程序程序框圖。 2.3主程序組 主程序的組成:包含了一個主要while循環結構及分支while循環、順序結構、條件結構、初始化局部變量分數、初始化變量模塊子VI、按鍵值賦值模塊子VI、根據按鍵值定義蛇動作模塊子VI、顯示二維數組賦值模塊子VI、判斷能否繼續游戲判定子VI、食物隨機生成子VI、蛇吃到食物處理子VI、蛇移動子VI。分數顯示模塊:放在吃掉食物為真的情況下,不斷加1達到分數累計的作用。
2.4 軟件設計思想 進入游戲界面之后可選擇游戲難度。程序隨機定位貪吃蛇初始位置,當然也可以選擇退出游戲。開始之后便進入游戲。其流程圖如下。
1.png (38.93 KB, 下載次數: 79)
下載附件
2020-5-24 12:22 上傳
圖2-1主程序流程圖 第三章 系統軟件部分設計3.1系統整體程序框圖 系統整體程序框圖就是用戶所編寫的主程序,也就是用戶界所對應的底層程序,其中包括整個程序的運行控制,事件結構的設置,調用各種子程序的命令。
2.png (71.04 KB, 下載次數: 66)
下載附件
2020-5-24 12:22 上傳
圖3-1 貪吃蛇小游戲系統程序框圖 3.2.系統前面板界面 圖3-2為用戶界面,用戶界面的實現主要依靠 LabVIEW 提供的各種顯示控件,包括波形顯示控件、數據顯示控件,指示燈顯示報警控件等。程序運行時,用戶可以在前面板進行控制,同時后面板也在運行,只是用戶只需要控制前面板就可以了,如果需要更改程序時,就可以在后面板更改程序功能[41]。
3.png (24.69 KB, 下載次數: 64)
下載附件
2020-5-24 12:24 上傳
圖3-2貪吃蛇小游戲系統前面板 下面將詳細介紹各個模塊的設計原理。3.3各部分模塊子程序設計原理 本系統的軟件測試部分主要包括以下幾個模塊:XY坐標模塊、小蛇的移動控制模塊、食物增減的控制模、自殺事件模塊和撞墻事件處理模塊。
4.png (4.87 KB, 下載次數: 75)
下載附件
2020-5-24 12:24 上傳
圖3-3系統軟件設計部分組成框圖 3.4 XY坐標模塊 此程序的作用是把蛇的活動按有無蛇身、蘋果賦值。通過XY坐標來顯示蛇移動的軌跡,同時刪除已走過的軌跡路徑,避免與新的路徑混淆使程序出錯。是這樣實現的:先把原來的x,y數組簇按名稱解除捆綁,然后用兩個替換數組子集,這樣就可以用新的x,y坐標替換原本的x,y坐標,新的x,y坐標按名稱捆綁,然后輸出新的x,y坐標簇。同時把原來的x,y坐標簇按名稱解除捆綁,用兩個刪除數組元素刪除原本的x,y坐標簇,從而實現功能。程序框圖見下面:
5.png (4.16 KB, 下載次數: 72)
下載附件
2020-5-24 12:25 上傳
圖3-4輸入XY程序框圖
6.png (52.33 KB, 下載次數: 58)
下載附件
2020-5-24 12:26 上傳
圖3-5刪除XY坐標模塊
7.png (9.03 KB, 下載次數: 71)
下載附件
2020-5-24 12:26 上傳
圖3-6 XY坐標前面板顯示 3.5小蛇的移動控制模塊模塊 由于蛇本身是一個可增加元素的數組,所以用一個含兩個一維方向數組的簇來進行操作。每次讀取坐標或者增添完坐標后都要用簇解綁及簇捆綁來處理,這樣也便于在XY圖中顯示。 控制小蛇游走的方法是給定一個方向direction,然后利用這個direction的值來控制當前點與下一點的變換。小蛇不停的移動,為了使之與蘋果碰撞后能便捷的增加長度,這里采用這樣的方法實現:小蛇每按direction移動一個,就在小蛇數組的開頭添加一個點(此時這兩個點是相鄰的),然后將添加的點與蘋果所在坐標比較,如果不同,就將蛇數組的最后一個元素刪除,表示沒有吃到蘋果;如果相同,就保留這個元素(此時,相對于前一個位置時,小蛇的長度增加了),并且刪除這個蘋果,重新隨機產生另一個蘋果。循環往復(在while循環上添加移位寄存器)直到游戲結束。插入蛇頭新坐標的子程序框圖如下
|