Java 二维数组练习-----字符界面的扫雷 (一)

2014-11-24 11:36:06 · 作者: · 浏览: 12

[java
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 for(int j=0;j mine[i][j] = 0;
}
}

for(int i=0;i for(int j=0;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 for(int j=0;j if(mine[i][j] > 9)
mine[i][j] = 9;
}
}
//开始游戏
int score=0;
while(true){
//打印界面
for(int i=0;i for(int j=0;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;
}
}
}
}

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 for(int j=0;j mine[i][j] = 0;
}
}

for(int i=0;i for(int j=0;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