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,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11以Java代碼的方式總結(jié)幾個典型的內(nèi)存溢出案例
作為程序員,多多少少都會遇到一些內(nèi)存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑.今天分享給大家Java內(nèi)存溢出的相關(guān)案例,希望大家在日常工作中,盡量避免寫這些low水平的代碼,需要的朋友可以參考下2021-06-06IDEA教程創(chuàng)建SpringBoot前后端分離項目示例圖解
在使用spring、mybatis等框架時,配置文件很復雜,有時復雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題2021-10-10