20162302 實驗五《數據結構綜合應用》實驗報告
阿新 • • 發佈:2017-12-18
關閉 結束 idea ima 關卡 set start 箱子 game
實 驗 報 告
課程:程序設計與數據結構
姓名:楊京典
班級:1623
學號:20162302
實驗名稱:數據結構綜合應用
實驗器材:裝有IdeaU的聯想拯救者15ISK
實驗目的與要求:
1.編譯運行測試
2.代碼修改
3.代碼分析
實驗內容、步驟與體會:
實驗內容:
編譯運行測試
- 點擊紅色圈出來的地方
- 選擇虛擬機也可以選擇連在usb上的物理機,在這裏就選擇虛擬機
- 運行成功
- 測試按下方向鍵會向不同方向移動,並記錄按鍵步數
- 把箱子推到指定位置會出現過關畫面並播放一小段音樂
代碼修改
增加按鍵效果
原來的代碼是choose.setOnClickListener
將
setOnClickListener
改為setOnTouchListener
以獲取點擊擡起來的事件。在按下的時候更換圖片,在擡起來後更換新的圖片。choose.setOnTouchListener
增加新的關卡
這一更改相對來說要簡單得多,關卡以二維數組的形式存儲在GameLevels
裏面,增加關卡首先要增加一個二維數組。public static final int [][] LEVEL_11 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0,0 ,0 ,0 ,0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 0 ,0, 0, 0, 0}, {0, 0, 0, 0, 0 ,5 ,1 ,4 ,1 ,1 ,1, 2, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0}, {0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0, 0}, {0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0 ,0, 0 ,0 ,0 ,0 ,0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} };
然後把這一關卡加到
list
裏面OriginalLevels.add(LEVEL_11);
運行結果
代碼分析
- 主界面是
MainActivity
上面有四個按鍵是到各個界面的樞紐。 SysApplication
類實現了對活動的管理,把所有的活動都放到list
裏面,在結束活動的時候可以逐一結束所有活動。- 選項按鈕連接到
GameOption
活動,可以實現對於音樂的打開和關閉。 - 開始按鈕連接到
GameLevelActivity
界面,這個按鈕是選關按鈕,這個界面使用ArrayAdapter
自動生成相應關卡數目的按鈕。 - 這一方法調用
GameLevels
類,這個類是用來儲存關卡的,可以獲取所點擊到的相應的關卡數。 - 然後將獲取的二維數組傳遞到下一活動
GameActivity
,這一活動是負責關卡的核心,調用GameState
進行矩陣運算實時生成新的矩陣。 GameBitmaps
類負責將矩陣實時轉換成圖像界面。
20162302 實驗五《數據結構綜合應用》實驗報告