Java实现简单的扫雷图

网友投稿 290 2022-10-25


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得到周围的坐标

intCmEmxEUmR 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 + "";// 输出每个位置周围的CmEmxEUmR雷数

}

}

}

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();

}

}

运行截图


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:机器学习入门 - 1. 介绍与决策树(decision tree)
下一篇:redis系统优化相关
相关文章

 发表评论

评论列表