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

 }

运行截图

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

相关文章

  • Springboot如何去掉URL后面的jsessionid

    Springboot如何去掉URL后面的jsessionid

    这篇文章主要介绍了Springboot如何去掉URL后面的jsessionid,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 以Java代码的方式总结几个典型的内存溢出案例

    以Java代码的方式总结几个典型的内存溢出案例

    作为程序员,多多少少都会遇到一些内存溢出的场景,如果你还没遇到,说明你工作的年限可能比较短,或者你根本就是个假程序员!哈哈,开个玩笑.今天分享给大家Java内存溢出的相关案例,希望大家在日常工作中,尽量避免写这些low水平的代码,需要的朋友可以参考下
    2021-06-06
  • springboot配置https安全连接的方法

    springboot配置https安全连接的方法

    这篇文章主要介绍了springboot配置https安全连接的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 解决IDEA导入javaWeb项目注解爆红的问题

    解决IDEA导入javaWeb项目注解爆红的问题

    这篇文章主要介绍了解决IDEA导入javaWeb项目注解爆红的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring多线程的使用以及问题详解

    Spring多线程的使用以及问题详解

    在我们开发系统过程中,经常会处理一些费时间的任务(如:向数据库中插入大量数据),这个时候就就需要使用多线程,下面这篇文章主要给大家介绍了关于Spring多线程的使用以及问题的相关资料,需要的朋友可以参考下
    2022-05-05
  • IDEA教程创建SpringBoot前后端分离项目示例图解

    IDEA教程创建SpringBoot前后端分离项目示例图解

    在使用spring、mybatis等框架时,配置文件很复杂,有时复杂的让人想放弃Java,使用C#。springboot出现这一切问题就都不是问题
    2021-10-10
  • Spring OAuth2.0 单元测试解决方案

    Spring OAuth2.0 单元测试解决方案

    这篇文章主要介绍了Spring OAuth2.0 单元测试解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 生成8位随机不重复的数字编号的方法

    生成8位随机不重复的数字编号的方法

    生成随机不重复的数字编号在某些情况下也会用到,本文以生成8位随机不重复的数字编号为例与大家分享下具体的实现过程,感兴趣的朋友可以参考下
    2013-09-09
  • Java超详细讲解WebMvcConfigurer拦截器

    Java超详细讲解WebMvcConfigurer拦截器

    这篇文章将用实例来和大家介绍一下WebMvcConfigurer拦截器。文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2022-06-06
  • Java中使用MinIO的常用操作示例

    Java中使用MinIO的常用操作示例

    这篇文章主要介绍了Java中MinIO的常用操作示例,MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统,客户端支持Java,Net,Python,Javacript, Golang语言,需要的朋友可以参考下
    2024-01-01

最新评论