Java實(shí)現(xiàn)簡(jiǎn)單的掃雷圖
用Java實(shí)現(xiàn)簡(jiǎn)單的掃雷圖,供大家參考,具體內(nèi)容如下
掃雷圖的思想是:
1、地圖可以是一個(gè)二維數(shù)組,并對(duì)數(shù)組進(jìn)行初始化
2、隨機(jī)生成雷的位置,可以用Random函數(shù)進(jìn)行隨機(jī)生成也可以用Math.random()進(jìn)行隨機(jī)生成
(PS:我就是簡(jiǎn)單隨機(jī)下標(biāo)生成了雷的位置)
3、對(duì)每一個(gè)非雷的位置一周的格子進(jìn)行判斷是否有雷,進(jìn)行數(shù)字的累加
4、遍歷數(shù)組進(jìn)行輸出
private static void mineClearance() {
// 聲明一個(gè)二維數(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();
//隨機(jī)生成地雷
for (int i = 0; i < 25; i++) {
mineClearanceMap[random.nextInt(mineClearanceMap.length)][random.nextInt(mineClearanceMap.length)] = "*";// *表示雷
}
//mineClearanceMap[i][j]的一周的坐標(biāo),用i+x,j+y得到周圍的坐標(biāo)
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) {// 坐標(biāo)不能出界,數(shù)組從(0,0)開始
if (mineClearanceMap[xx][yy] == "*") {
count = count + 1;// 累計(jì)這八個(gè)方位的雷總數(shù)
}
}
}
mineClearanceMap[i][j] = count + "";// 輸出每個(gè)位置周圍的雷數(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();
}
}
運(yùn)行截圖

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot如何去掉URL后面的jsessionid
這篇文章主要介紹了Springboot如何去掉URL后面的jsessionid,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
以Java代碼的方式總結(jié)幾個(gè)典型的內(nèi)存溢出案例
作為程序員,多多少少都會(huì)遇到一些內(nèi)存溢出的場(chǎng)景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個(gè)假程序員!哈哈,開個(gè)玩笑.今天分享給大家Java內(nèi)存溢出的相關(guān)案例,希望大家在日常工作中,盡量避免寫這些low水平的代碼,需要的朋友可以參考下2021-06-06
解決IDEA導(dǎo)入javaWeb項(xiàng)目注解爆紅的問題
這篇文章主要介紹了解決IDEA導(dǎo)入javaWeb項(xiàng)目注解爆紅的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解
在使用spring、mybatis等框架時(shí),配置文件很復(fù)雜,有時(shí)復(fù)雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題2021-10-10
生成8位隨機(jī)不重復(fù)的數(shù)字編號(hào)的方法
生成隨機(jī)不重復(fù)的數(shù)字編號(hào)在某些情況下也會(huì)用到,本文以生成8位隨機(jī)不重復(fù)的數(shù)字編號(hào)為例與大家分享下具體的實(shí)現(xiàn)過程,感興趣的朋友可以參考下2013-09-09
Java超詳細(xì)講解WebMvcConfigurer攔截器
這篇文章將用實(shí)例來和大家介紹一下WebMvcConfigurer攔截器。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下2022-06-06

