源碼簡介

本項目是一個簡單的安卓掃雷游戲應用源碼,源碼備注很詳細,算法不復雜,只用最簡單的推理 。有興趣的可以看下下面的開發步驟

本文主要介紹掃雷游戲的開發 ,本掃雷游戲為簡單的掃雷游戲 默認為9*9方格 中有10個地雷
游戲規則估計大家都應該懂 我這里 不再介紹
步驟1.構建游戲框架 即 建立9*9的方格
使用for循環 注意 :要使用TableRow.LayoutParams為for循環里面的Button設置width和height
演示代碼

		TableRow.LayoutParams layoutParams=new TableRow.LayoutParams(landmineWidth,130);
		button[i][j].setLayoutParams(layoutParams);

步驟2.隨機生成10個雷 判斷該坐標是否有雷 初始化之前設置全部為沒有雷
演示主要代碼:

Random random=new Random();
for (int i = 0; i
步驟3.初始化雷旁邊的數字 這個是該游戲的核心算法 此處在生成地雷以及初始化地雷旁邊的數字 我使用的是一個障眼法。即先設置字體顏色跟Button背景顏色相同,當點擊的時候,在設置其字體顏色為黑色 這樣就以為是真的在上面覆蓋了一層。
設置字體顏色為0xD3D3D3 就可以與Button背景顏色相同了
最簡單的也是最笨的辦法 用到的是九宮格遞推法 下面簡要說明步驟

x-1,y-1		x-1,y		x-1,y+1
x,y-1		x,y		x,y+1
x+1,y-1		x+1,y		x+1,y+1

實例坐標
(0,0)		(0,1)		(0,2)
(1,0)		(1,1)		(1,2)
(2,0)		(2,1)		(2,2)

在9*9的方格中 ,判斷該坐標是否有地雷,我們就先從特殊在推到普通
1.先判斷四個頂點坐標 分別是(左上,左下,右上,右下) 即如下坐標(0,0)(8,0)(0,8)(8,8)而且只用判斷三次就行了
即以他為中心的三個坐標點。不理解的可以自己思考 假如以(0,0)為中心 只用判斷(0,1)(1,0)(1,1)三點坐標是否有地雷就行了
2.在判斷四邊坐標點上是否有地雷 分別是(最上一行,最下一行,最左一列,最右一列).可以參照判斷頂點坐標的方式進行判斷 這里不再詳細講述
3.剩余的就是普通的了 就可以只用判斷以自己為中心,周圍八個點的坐標了。

步驟4:在生成地雷的時候設置相應的點擊事件 以及長按事件
一.在點擊事件里面 核心就是在沒有地雷的地區進行推到顯示 即 點擊的是沒有地雷 如果不是數字即為空白 則連片顯示只要是都不為數字的空白
點擊事件的編寫也是按照從特殊到一般的順序 下面我來簡單介紹下
1.先判斷點擊的是地雷 直接終止游戲 然后初始化
2.如果點擊的不是地雷 在判斷他的Text文字是否為空白
如果是空白 依次查看其上下左右的坐標是否為空白 若為空白 依次打開 所用到的方法與計算地雷周圍數量的方法相同 同樣是從一般到特殊進行判斷
這里 不再詳細敘述。我在做代碼編寫的時候,有一處地方困擾了我很久,就是如何不讓判斷進入死循環。因為你在做周圍是否有地雷的判斷時,如果旁邊
沒有地雷,這是你還要再進行九宮格判斷。這樣就容易進入一個死循環 。我琢磨了一個 下午,用盡各種辦法,才能跟直白的讓大家看的明白。第二天無意間我
恍然大悟。我用的是一個做判斷 一個用boolean型做標記。 如果是空白 說明他上面的text文字為null 這樣判斷就解決了。在定義個boolean型變量,先初始化為flass
即沒有標記一個空白區域 。當遇到一個空白區域時,就讓他為true.這樣就順利解決了進入死循環的問題。頓時有柳暗花明又一村的感覺。

二、長按事件的編寫。同樣 ,定義一個數字,用來保存長按的是什么 長按一下 是標記地雷 長按第二次是標記問號 長按第三下為什么也不標記
三、最后判斷游戲是否贏 判斷很簡單 只要界面上沒有雷 就可以了 即Button的getText全部為L
Andorid游戲源碼安卓掃雷有詳細注釋源碼 Andorid游戲源碼安卓掃雷有詳細注釋源碼

1條源碼討論
發表評論

您必須登錄才能評論.

沙發 Specher 2015-04-21 下午7:24

分辨率沒有處理

?2013-2019 JavaApk.com· 魯ICP備13032311號-1· Powered by WordPress· Theme by JavaApkTM · 網站地圖.17 queries in 0.065 seconds


竟彩足球比分直播