欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)簡單的掃雷圖

 更新時間:2021年05月11日 06:57:45   作者:麋鹿不知歸途  
這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單的掃雷圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

用Java實現(xiàn)簡單的掃雷圖,供大家參考,具體內(nèi)容如下

掃雷圖的思想是:

1、地圖可以是一個二維數(shù)組,并對數(shù)組進行初始化

2、隨機生成雷的位置,可以用Random函數(shù)進行隨機生成也可以用Math.random()進行隨機生成

(PS:我就是簡單隨機下標生成了雷的位置)

3、對每一個非雷的位置一周的格子進行判斷是否有雷,進行數(shù)字的累加

4、遍歷數(shù)組進行輸出

private static void mineClearance() {
  // 聲明一個二維數(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();
  //隨機生成地雷
  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) {// 坐標不能出界,數(shù)組從(0,0)開始
       if (mineClearanceMap[xx][yy] == "*") {
        count = count + 1;// 累計這八個方位的雷總數(shù)
       }
      }
     }
     mineClearanceMap[i][j] = count + "";// 輸出每個位置周圍的雷數(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();
  }

 }

運行截圖

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot如何去掉URL后面的jsessionid

    Springboot如何去掉URL后面的jsessionid

    這篇文章主要介紹了Springboot如何去掉URL后面的jsessionid,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 以Java代碼的方式總結(jié)幾個典型的內(nèi)存溢出案例

    以Java代碼的方式總結(jié)幾個典型的內(nèi)存溢出案例

    作為程序員,多多少少都會遇到一些內(nèi)存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑.今天分享給大家Java內(nèi)存溢出的相關(guān)案例,希望大家在日常工作中,盡量避免寫這些low水平的代碼,需要的朋友可以參考下
    2021-06-06
  • springboot配置https安全連接的方法

    springboot配置https安全連接的方法

    這篇文章主要介紹了springboot配置https安全連接的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 解決IDEA導入javaWeb項目注解爆紅的問題

    解決IDEA導入javaWeb項目注解爆紅的問題

    這篇文章主要介紹了解決IDEA導入javaWeb項目注解爆紅的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Spring多線程的使用以及問題詳解

    Spring多線程的使用以及問題詳解

    在我們開發(fā)系統(tǒng)過程中,經(jīng)常會處理一些費時間的任務(如:向數(shù)據(jù)庫中插入大量數(shù)據(jù)),這個時候就就需要使用多線程,下面這篇文章主要給大家介紹了關(guān)于Spring多線程的使用以及問題的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • IDEA教程創(chuàng)建SpringBoot前后端分離項目示例圖解

    IDEA教程創(chuàng)建SpringBoot前后端分離項目示例圖解

    在使用spring、mybatis等框架時,配置文件很復雜,有時復雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題
    2021-10-10
  • Spring OAuth2.0 單元測試解決方案

    Spring OAuth2.0 單元測試解決方案

    這篇文章主要介紹了Spring OAuth2.0 單元測試解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 生成8位隨機不重復的數(shù)字編號的方法

    生成8位隨機不重復的數(shù)字編號的方法

    生成隨機不重復的數(shù)字編號在某些情況下也會用到,本文以生成8位隨機不重復的數(shù)字編號為例與大家分享下具體的實現(xiàn)過程,感興趣的朋友可以參考下
    2013-09-09
  • Java超詳細講解WebMvcConfigurer攔截器

    Java超詳細講解WebMvcConfigurer攔截器

    這篇文章將用實例來和大家介紹一下WebMvcConfigurer攔截器。文中的示例代碼講解詳細,對我們學習Java有一定的幫助,需要的可以參考一下
    2022-06-06
  • Java中使用MinIO的常用操作示例

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

    這篇文章主要介紹了Java中MinIO的常用操作示例,MinIO 是一款基于Go語言發(fā)開的高性能、分布式的對象存儲系統(tǒng),客戶端支持Java,Net,Python,Javacript, Golang語言,需要的朋友可以參考下
    2024-01-01

最新評論