import java.util.Scanner;
public class Mine {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//9×9的二维数组
int[][] mine = new int[9][9];
int[][] show = new int[9][9];
for(int i=0;i<mine.length;i++){
for(int j=0;j<mine[0].length;j++){
mine[i][j] = 0;
}
}
for(int i=0;i<show.length;i++){
for(int j=0;j<show[0].length;j++){
show[i][j] = 0;
}
}
//产生随机的坐标
int[] randi = {0,1,2,3,4,5,6,7,8};
int[] randj = {0,1,2,3,4,5,6,7,8};
int z=0;
while(true){
//有待改进
int i = randi[(int) (Math.random()*10)%9];
int j = randj[(int) (Math.random()*10)%9];
//放雷,数字9表示雷
if(mine[i][j]>=9){
continue;
}else{
if(z>=10){
break;
}
mine[i][j] = 9;
z++;
}
//改变数字
if((i-1>=0 && i-1<=mine.length-1)&&(j-1>=0 &&j-1<=mine[0].length-1))
mine[i-1][j-1]++;
if((i-1>=0 && i-1<=mine.length-1)&&(j>=0 &&j<=mine[0].length-1))
mine[i-1][j]++;
if((i-1>=0 && i-1<=mine.length-1)&&(j+1>=0 &&j+1<=mine[0].length-1))
mine[i-1][j+1]++;
if((i>=0 && i<=mine.length-1)&&(j-1>=0 &&j-1<=mine[0].length-1))
mine[i][j-1]++;
if((i>=0 && i<=mine.length-1)&&(j+1>=0 &&j+1<=mine[0].length-1))
mine[i][j+1]++;
if((i+1>=0 && i+1<=mine.length-1)&&(j-1>=0 &&j-1<=mine[0].length-1))
mine[i+1][j-1]++;
if((i+1>=0 && i+1<=mine.length-1)&&(j>=0 &&j<=mine[0].length-1))
mine[i+1][j]++;
if((i+1>=0 && i+1<=mine.length-1)&&(j+1>=0 &&j+1<=mine[0].length-1))
mine[i+1][j+1]++;
}
//去掉大于9的
for(int i=0;i<mine.length;i++){
for(int j=0;j<mine[0].length;j++){
if(mine[i][j] > 9)
mine[i][j] = 9;
}
}
//开始游戏
int score=0;
while(true){
//打印界面
for(int i=0;i<show.length;i++){
for(int j=0;j<show[0].length;j++){
System.out.print(show[i][j]+"\t");
}
System.out.println();
}
//输入坐标
Scanner sc = new Scanner(System.in);
int x,y;
System.out.println("请输入坐标:");
x=sc.nextInt();
y=sc.nextInt();
//判断
if(mine[x][y] == 9){
System.out.println("很不幸,你中雷了!!");
break;
}
score++;
if(mine[x][y] == 0){
show[x][y] = -1;
}else{
show[x][y] = mine[x][y];
}
if(score == 71){
System.out.println("恭喜你赢了!!");
break;
}
}
}
}
Java 二维数组练习-----字符界面的扫雷
最新推荐文章于 2022-11-17 13:08:24 发布