1. 程式人生 > >java 實現掃雷演算法

java 實現掃雷演算法

小時候接觸掃雷,完了好久都沒有弄明白,最近再次接觸掃雷才明白了玩法。

 規則:找出一定數量的雷整個遊戲才會結束。點選方格,是數字n的話,就表明這個方格的周圍8個方格中一共有n個雷。

演算法:

          (1)假設一局中有10個雷,方格大小是n*m,用陣列map[n][m]表示就可以了,map[i][j] (0<=i<n,0<=j<m)大小就是0--8 ,用9表示雷。

          (2) 隨機生成10個雷,並且每次生成一個雷,給這個方格的周圍,也就是對應的8個位置,只要不是雷 ,就加1.這樣就ok了,

         (3)在玩的時候 ,如果點選的空格是0,就表明沒有周圍沒有雷,那麼就要找出周圍所有的不是雷的方格。這個時候用遞迴就可以了。

相關推薦

java 實現掃雷演算法

小時候接觸掃雷,完了好久都沒有弄明白,最近再次接觸掃雷才明白了玩法。  規則:找出一定數量的雷整個遊戲才會結束。點選方格,是數字n的話,就表明這個方格的周圍8個方格中一共有n個雷。 演算法:           (1)假設一局中有10個雷,方格大小是n*m,用陣列map[n

java實現權重演算法

一、簡單介紹 如有4個元素A、B、C、D,權重分別為1、2、3、4,隨機結果中A:B:C:D的比例要為1:2:3:4。 總體思路:累加每個元素的權重A(1)-B(3)-C(6)-D(10),則4個元素的的權重管轄區間分別為[0,1)、[1,3)、[3,6)、[6,10)。然後隨機出一個[0

一個用Java實現密碼演算法,使用socket引發的血案

public static void main(String[] args) throws IOException, ParseException { ServerSocket serverSocket = new ServerSocket(1

Java實現MD5演算法過程,並利用自帶MD5函式進行對比校驗

文章目錄 一、環境說明 二、演算法原理概述 三、程式設計 資料結構 重要模組步驟 四、執行結果 一、環境說明 作業系統:window10 程式語言:Java (J

LeetCode 239. 滑動視窗最大值 java實現 個人演算法之旅筆記

239. 滑動視窗最大值 給定一個數組 nums,有一個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗 k 內的數字。滑動視窗每次只向右移動一位。 返回滑動視窗最大值。 示例: 輸入: nums = [1,3,-1,-3,5,3,6,7

希爾排序(java實現演算法詳解

希爾排序也是一種插入排序演算法,也叫作縮小增量排序,是直接插入排序的一種更高效的改進演算法。 希爾排序因其設計者希爾(Donald Shell)的名字而得名,該演算法在 1959 年被公佈。一些老版本的教科書和參考手冊把該演算法命名為 Shell-Metzner,包含了 Marlene Metzner No

java實現排序演算法之歸併排序(2路歸併)

 歸併排序:“歸併”的含義就是將兩個或兩個以上的有序表合併成一個新的有序表,假定待排序表含有n個記錄,則可以看成是n個有序的子表,每個子表的長度為1,然後兩兩歸併,得到n/2個長度為2或1的有序表,然後在兩兩歸併,如此重複,直到合併成一個長度為n的有序表為止,這就是2路歸併

JAVA實現遺傳演算法

個人部落格站已經上線了,網址 www.llwjy.com ~歡迎各位吐槽~ -------------------------------------------------------------------------------------------------

Java實現DFA演算法對敏感詞、廣告詞過濾功能

一、前言 開發中經常要處理使用者一些文字的提交,所以涉及到了敏感詞過濾的功能,參考資料中DFA有窮狀態機演算法的實現,建立有向圖。完成了對敏感詞、廣告詞的過濾,而且效率較好,所以分享一下。 具體實現:  1、匹配大小寫過濾  2、匹配全形半形過濾  3、匹配過濾停頓詞過濾。

營救公主(Java實現A*演算法解決迷宮問題)

很早就聽說過A*演算法,據說在尋路徑時,是一種比較高效的演算法。但是一直沒有搞清楚原理。 這段時間剛好有個營救公主的例子: 題描述 : 公主被魔王抓走了 , 王子需要拯救出美麗的公主 。 他進入了魔王的城 堡 , 魔王的城堡是一座很大的迷宮 。 為了使問題簡單化 , 我們假設這個迷宮是

Java實現k_means演算法進行聚類分析

實驗描述: 對指定資料集進行聚類分析,選擇適當的聚類演算法,編寫程式實現,提交程式和結果報告。 資料集: Iris Data Set(見附件一) ,根據花的屬性進行聚類。 資料包括四個屬性:sepal length花萼長度,sepal width花萼寬度,petal len

java實現冒泡演算法

package interviewtest; import java.util.Random; public class pop { public static void main(String args[]) { int array[] = new int[10];

java實現掃雷遊戲

本文是java掃雷程式的開發,是對http://blog.csdn.net/ping_qc/article/details/7166092的java程式改進,在基礎不變的基礎上增加了右鍵標記功能以及自主選擇難度功能 package game; import java.a

java實現經典演算法

氣泡排序 /** *氣泡排序 *比較相鄰的兩個元素,如果第一個比第二個大則將兩個交換順序 *i<numbers.length 控制排序輪數 一般為陣列長度減1次,因為最後一次迴圈只剩下一個數組元素,不需要對比,同時陣列已經完成排序了 *j<nu

java實現掃雷,附詳細原始碼,有註釋

算是我學完Java的一個小測試吧還有有很多不足,望大佬們指出另外,裡面有一小部分惡搞public class boom_address { public int i,j; public boom_address() { // TODO Auto-generated c

Java實現排序演算法之氣泡排序

氣泡排序的思想:將帶排序的序列兩兩進行比較,較大的一個“冒泡”,“冒泡”即如果下標為A 與B的資料比較,A 大則與B交換位置,否則就不交換位置,交換位置後,此時B的位置程式設計A,B 的下一個位置是B,兩者在進行比較,每進行一輪排序,總是較大的數排在剩下序列的最高位,也因此為

演算法java實現--貪心演算法--最小生成樹問題--Kruskal演算法

最小生成樹問題(Kruskal演算法)的java實現(貪心演算法) 具體問題描述以及C/C++實現參見網址 http://blog.csdn.net/liufeng_king/article/details/8738161 import java.util.Colle

Java實現排序演算法之快速排序

一、綜述        快速排序是交換排序中的一種,平均演算法複雜度是O(nlogn),最壞O(n*n)。下面用Java實現一個快速排序,並用註釋的方式解釋了思想和原理。 二、Java實現堆排

演算法java實現--貪心演算法--最小生成樹問題--Prim演算法

最小生成樹問題(Prim演算法)的java實現(貪心演算法) 具體問題描述以及C/C++實現參見網址 http://blog.csdn.net/liufeng_king/article/details/8738161 /** * 最小生成樹(Prim演算法):貪心演

演算法java實現--貪心演算法--最優裝載問題

最優裝載問題演算法的java實現(貪心演算法) 具體問題描述以及C/C++實現參見網址 /** * 最優裝載問題(貪心演算法) * @author Lican * */ public class BestLoading { public float load