本游戲為推箱子游戲,即通過移動方向鍵來控制小人去推動箱子,直到把所有的箱子都推動到各個目標中。游戲需要在人物行走過程中無法穿越牆和箱子,並在有限的范圍中放好各箱子,且每次只能搬運一個箱子。所基於的語言是8086匯編,使用的編譯環境是唐都的集中開發環境TD-PIT。
本次設計的基本思想是通過將不同的元素(牆、路、箱子、人、目標位)抽象為不同的矩陣,然后將所設計的地圖描抽象成一個控制矩陣來控制圖像的顯示,每一個控制矩陣塊代表一個元素,我們通過不斷刷新控制矩陣來達到顯示人物移動及推箱子的效果。
1.1推箱子游戲具有的功能
(1)顯示主菜單和界面
游戲需要提供貨源主菜單讓玩家進行游戲設置,同時能夠把地圖文件中的信息轉化成圖像顯示到主游戲界面上。
(2)能夠實現鍵盤操作功能
能夠接收到鍵盤輸入的方向鍵信息,並根據不同的方向鍵把游戲人物移動到相應的位置。例如,玩家按方向鍵“上”時,如果向上的位置是可移動的,那么就當把游戲人物向上移動一個方格。
(3)能夠把放置到位置上的箱子進行變色顯示
當玩家把箱子推到指定位置的格子時,需要把這個箱子進行變色。這樣就能明確的顯示出該箱子已經放置到指定的位置上。
(4) 支持游戲的時間計時和步數記錄
當玩家開始游戲時就開始計時,游戲中的小人物每走一步就會記錄一次步數。
(5)支持游戲的隱藏炸彈和引爆炸彈功能
如果玩家無法將指定的箱子全部推到放置點時,可以通過游戲中設的隱藏炸彈引爆阻擋的牆可以繼續游戲。
(6)支持關口選擇功能
玩家在游戲中可自行選擇需要挑戰的關口。當玩家點擊菜單中的“下一關, 上一關”按鈕時可進行關口的調節
(7)游戲是否通關判斷功能
在游戲中,當玩家把所有的箱子都推到箱子放置點時,玩家勝利通過當前游戲關口,進行下一關口的游戲。如果玩家無法將指定的箱子全部推到放置點時,玩家失敗。玩家可以選擇重新進行當前關口的游戲,還是退出游戲。
(8)游戲提供幫助說明
在游戲的菜單中,提供一個使用說明項,以便對本游戲不了解的玩家對游戲進行操作和使用。
二 系統總體設計
2.1功能模塊的設計
系統模塊圖
本程序包括六個模塊,分別是初始化模塊,畫圖 模塊,移動箱子模塊,移動小人模塊,作弊模塊和功能控制模塊,各個模塊的功能描述如下
(1)初始化模塊
該模塊包括屏幕初始化和游戲第一關的初始化。游戲每一關的初始化是構建每一關的關卡。
(2)畫圖模塊
該模塊主要是被其他模塊的調用,用於畫牆,在空地畫箱子,畫小人和畫目的地。
(3)移動箱子模塊
該模塊用於移動箱子,包括目的地之間,空地之間和目的地與空地之間的箱子移動
(4)移動小人模塊
該模塊用於控制小人移動,從而推動箱子到目的地。
(5)作弊模塊
該模塊用於無路可走的情況下,可以把牆炸掉,可以給箱子提供一個可走的路。
(6)功能控制模塊
該模塊是幾個功能函數的集合,包括屏幕輸出功能,指定位置狀態判斷功能和關卡重置能。
源代碼查看地址:https://github.com/lidakun/Text/blob/master/Text.txt