Java實(shí)現(xiàn)簡(jiǎn)單的掃雷圖
用Java實(shí)現(xiàn)簡(jiǎn)單的掃雷圖,供大家參考,具體內(nèi)容如下
掃雷圖的思想是:
1、地圖可以是一個(gè)二維數(shù)組,并對(duì)數(shù)組進(jìn)行初始化
2、隨機(jī)生成雷的位置,可以用Random函數(shù)進(jìn)行隨機(jī)生成也可以用Math.random()進(jìn)行隨機(jī)生成
(PS:我就是簡(jiǎn)單隨機(jī)下標(biāo)生成了雷的位置)
3、對(duì)每一個(gè)非雷的位置一周的格子進(jìn)行判斷是否有雷,進(jìn)行數(shù)字的累加
4、遍歷數(shù)組進(jìn)行輸出
private static void mineClearance() { // 聲明一個(gè)二維數(shù)組表示掃雷地圖 String[][] mineClearanceMap = new String[9][9]; //初始化數(shù)組 for (int i = 0; i < mineClearanceMap.length; i++) { for (int j = 0; j < mineClearanceMap.length; j++) { mineClearanceMap[i][j] = '0'; } } Random random = new Random(); //隨機(jī)生成地雷 for (int i = 0; i < 25; i++) { mineClearanceMap[random.nextInt(mineClearanceMap.length)][random.nextInt(mineClearanceMap.length)] = '*';// *表示雷 } //mineClearanceMap[i][j]的一周的坐標(biāo),用i+x,j+y得到周?chē)淖鴺?biāo) int x[] = { -1, -1, -1, 0, 0, 1, 1, 1 }; int y[] = { -1, 0, 1, -1, 1, -1, 0, 1 }; for (int i = 0; i < mineClearanceMap.length - 1; i++) { for (int j = 0; j < mineClearanceMap.length - 1; j++) { int count = 0; if (!'*'.equals(mineClearanceMap[i][j])) { for (int k = 0; k < 8; k++) { int xx = i + x[k]; int yy = j + y[k]; if (xx >= 0 && yy >= 0) {// 坐標(biāo)不能出界,數(shù)組從(0,0)開(kāi)始 if (mineClearanceMap[xx][yy] == '*') {count = count + 1;// 累計(jì)這八個(gè)方位的雷總數(shù) } } } mineClearanceMap[i][j] = count + '';// 輸出每個(gè)位置周?chē)睦讛?shù) } } } System.out.println('得到的掃雷圖,*為雷'); for (int j = 0; j < mineClearanceMap.length; j++) { for (int j2 = 0; j2 < mineClearanceMap.length; j2++) { System.out.print(mineClearanceMap[j][j2]); } System.out.println(); } }
運(yùn)行截圖
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python 編寫(xiě)輸出到csv的操作2. JAMon(Java Application Monitor)備忘記3. js的一些潛在規(guī)則使用分析4. PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作示例5. 利用原生JS實(shí)現(xiàn)歡樂(lè)水果機(jī)小游戲6. php中加密解密DES類(lèi)的簡(jiǎn)單使用方法示例7. Python PyQt5-圖形界面的美化操作8. IntelliJ IDEA 常用設(shè)置(配置)吐血整理(首次安裝必需)9. ASP.Net MVC利用NPOI導(dǎo)入導(dǎo)出Excel的示例代碼10. 手把手教你用python發(fā)送短消息(基于阿里云平臺(tái))
