Java实现简单的扫雷图

用Java实现简单的扫雷图,供大家参考,具体内容如下

扫雷图的思想是:

1、地图可以是一个二维数组,并对数组进行初始化

2、随机生成雷的位置,可以用Random函数进行随机生成也可以用Math.random()进行随机生成

(PS:我就是简单随机下标生成了雷的位置)

3、对每一个非雷的位置一周的格子进行判断是否有雷,进行数字的累加

4、遍历数组进行输出

private static void mineClearance() {  // 声明一个二维数组表示扫雷地图  String[][] mineClearanceMap = new String[9][9];  //初始化数组  for (int i = 0; i < mineClearanceMap.length; i++) {   for (int j = 0; j < mineClearanceMap.length; j++) {    mineClearanceMap[i][j] = "0";   }  }  Random random = new Random();  //随机生成地雷  for (int i = 0; i < 25; i++) {   mineClearanceMap[random.nextInt(mineClearanceMap.length)][random.nextInt(mineClearanceMap.length)] = "*";// *表示雷  }  //mineClearanceMap[i][j]的一周的坐标,用i+x,j+y得到周围的坐标  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) {// 坐标不能出界,数组从(0,0)开始       if (mineClearanceMap[xx][yy] == "*") {        count = count + 1;// 累计这八个方位的雷总数       }      }     }     mineClearanceMap[i][j] = count + "";// 输出每个位置周围的雷数    }   }  }  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();  } }

运行截图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

青春一经典当即永不再赎

Java实现简单的扫雷图

相关文章:

你感兴趣的文章:

标签云: