大學生課程設計 ------ 安卓Android軟體設計(掃雷)
Android嵌入式軟體設計課程(代碼+課程報告)
基本效果以及報告的部分內容如下(所有相關檔案在文末鏈接給出):
一、 專案研究背景與意義
(一)掃雷游戲介紹:
《掃雷》是一款大眾類的益智小游戲,于1992年發行,游戲目標是在最短的時間內根據點擊格子出現的數字找出所有非雷格子,同時避免踩雷,踩到一個雷即全盤皆輸,
(二)背景:
掃雷在科技歷史上也扮演了相似的角色,這個基于數字的邏輯謎題最早來自20實際六七十年代,當時候Jerimac Ratliff推出的名為“Cube”的游戲已經非常受人歡迎,幾十年后的1992年,掃雷游戲被加入了Windows3.1,這并不是為了展示Windows是游戲作業系統專家,而是為了訓練用戶的滑鼠左右鍵操作能力,讓這些動作變得非常自然,并培養滑鼠移動的速度和準確性,
(三)游戲設定:
游戲區包括雷區,確定大小的矩形雷區中隨機布置一定數量的地雷,玩家需要盡快找出雷區中的所有不是地雷的方塊,而不許踩到地雷,
(四)游戲意義:
掃雷從Windows 3.1時期開始整個游戲界面由一個個方塊組成,任意點擊其中一個方塊,如果該方塊下面藏著地雷,則Game Over,但卻可以讓人不知不覺間搭上好幾個小時的投入時間,作為日常調劑的游戲作品,掃雷的確是款老少男女彎直咸宜的休閑游戲,而且用來殺時間會非常有效,這種游戲對于微軟這樣的游戲大廠而言,或許也算是體現功力的點所在,
一、 本專案研究內容與目標
開發一款基于安卓手機的掃雷為廣大掃雷愛好者提供休閑娛樂的小游戲,
二、 運行環境
Android Studio 以及 小米5手機
三、 系統功能描述
(一) 系統設計
系統的實作技術:使用純ImageButton 以及 陣列實作
系統模塊結構圖:
(一) 功能詳解
1.主界面
其中,以點按的方式打開方塊,藍色圓圈代表重新開局,紅色代表使用炸彈標記,
2.功能介紹
使用紅色可以標記炸彈,以聲音提醒代表通關或失敗,
失敗后會有聲音提醒,可以使用藍色小圓圈重新開局,
一、 代碼實作
掃雷由n x m 的方格區域構成,當我們點擊其中一個方塊的時候,如果它不是雷,它就應當以數字的形式表示出在它外圈的一圈內包含有多少個雷,這個數字的范圍是1到8,在它不是雷的前提下,如果它周圍也沒有雷的話,那我們點擊的方塊在下一秒應當展開當前的一片無雷的區域,以數字作為邊界,該邊界指出外圈的雷的數目,我們的做法是,以二維陣列的形式定義一片區域,每二維陣列上的每一個數字映射著我們雷區的每一塊方格,然后就是該二維陣列的數字的范圍,我們取整型數字的范圍為0到9,用9來表示雷,用0到8來表示外圍雷的數目,我們這里的0在 后是不用來顯示在方塊上的,我們判斷到方塊下面的數字是0的話我們會讓雷區展開一片空白區域,也就是說,我們剛開始初始化了一個二維陣列map,來映射一片雷區,其中的整型數字范圍為0到9,用9來表示雷,
所以剛開始的代碼,將二維陣列初始化為0,接下來按行隨機和列隨機的方式隨機布下指定數目的雷的數量,這樣,我們 開始的而且也是掃雷中 實際的“雷區”(map)也就生成了,但最終要實作用戶互動界面,所以需要將我們的map映射到frame上,并能實作點擊互動,我們這里的做法是,使用按鈕,覺得使用按鈕可以不必再去滑鼠點擊的區域的具體坐標,直接使用按鈕監聽器來實作對點擊位置的具體把控,所以我們在互動界面,我們初始化了ImageButton陣列,然后使用了TableLayout的布局將按鈕布置上去,剛開始的按鈕的外觀慘不忍睹,后來才采用了圖片的形式來替代默認的按鈕外觀,這些是外在,內在我們還有很多需要考慮的地方,先記住我們的初始化雷區map是0到9的二維陣列,
比如,我們剛開始需要為用戶提供一個初始界面,就是都沒有被動過的按鈕,當用戶點擊的時候,需要展開區域,還是顯示數字,還是顯示雷,還是標記此位置為雷,每一個按鈕的“狀態”即外觀都是不一樣的,而這些“狀態”的改變與我們的map上面的數字不能直接形成一一映射的關系,也就是說,我們狀態需要改變,但是我們的map是我們基本的雷區,是不能被改變的,而且0到9的范圍有10種狀態選擇,但我們的互動界面需要的狀態變化有13種,所以為了解決這種問題,我們引入了一層隱藏層,來表示我們的界面上面的每一塊方塊的狀態變化,我們為隱藏層命名為hiddenmap,同樣為我們的int型以便于儲存多“狀態”,
---------------------------------------------------我是分割線------------------------------------------------------------------------
請到百度網盤下載全部檔案(代碼+論文)
鏈接:https://pan.baidu.com/s/1pqMgNCM0ol0HzyL8Ux5YOA
提取碼:2hjh
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/172001.html
標籤:其他
上一篇:分享幾道有趣的演算法題
