Java实现简单的扫雷图

 更新时间:2021年05月11日 06:57:45   作者:麋鹿不知归途  
这篇文章主要为大家详细介绍了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();
  }

 }

运行截图

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

相关文章

  • spring使用aspect注解切面不起作用的排查过程及解决

    spring使用aspect注解切面不起作用的排查过程及解决

    这篇文章主要介绍了spring使用aspect注解切面不起作用的排查过程及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • JPA 通过Specification如何实现复杂查询

    JPA 通过Specification如何实现复杂查询

    这篇文章主要介绍了JPA 通过Specification如何实现复杂查询,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java 8实现图片BASE64编解码

    Java 8实现图片BASE64编解码

    Java 8终于有了标准的方法来处理base64的编解码。Java一直缺少BASE64编码API,以至于通常在项目开发中会选用第三方的API实现。但是,Java 8实现了BASE64编解码API,它包含到java.util包。下面这篇文章我会对Java 8的BASE64编解码做一个详细的介绍。
    2016-10-10
  • java 实现将一个string保存到txt文档中

    java 实现将一个string保存到txt文档中

    今天小编就为大家分享一篇java 实现将一个string保存到txt文档中的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Java 判断一个时间是否在另一个时间段内

    Java 判断一个时间是否在另一个时间段内

    这篇文章主要介绍了Java 判断一个时间是否在另一个时间段内的相关资料,需要的朋友可以参考下
    2016-10-10
  • Nebula Graph介绍和SpringBoot环境连接和查询操作

    Nebula Graph介绍和SpringBoot环境连接和查询操作

    Nebula Graph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询,这篇文章主要介绍了Nebula Graph介绍和SpringBoot环境连接和查询,需要的朋友可以参考下
    2022-10-10
  • java 后台开发中model与entity(实体类)的区别说明

    java 后台开发中model与entity(实体类)的区别说明

    这篇文章主要介绍了java 后台开发中model与entity(实体类)的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • IDEA中配置操作Git的详细图文教程

    IDEA中配置操作Git的详细图文教程

    这篇文章给大家详细介绍在IDEA中配置Git,IDEA中操作Git的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-10-10
  • Java WebService技术详解

    Java WebService技术详解

    本文详细讲解了Java WebService技术工作原理以及调用方式。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Struts2在打包json格式的懒加载异常问题

    Struts2在打包json格式的懒加载异常问题

    这篇文章主要为大家详细介绍了Struts2在打包json格式的懒加载异常问题,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论