package 孙盛桃0714;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Sweep {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.print("输入行数:");
int hang=input.nextInt();
int k=hang*hang/8+1;
System.out.println("一共有"+k+"个雷");
int p=0,q=0,r=0,t=0,count=0,kk=0,m,n;//(m,n)为玩家选择的点
//***************************初始化*****************************
char[][] lei=new char[hang][hang];
char[][] mylei=new char[hang][hang];
for(int i=0;i<hang;i++)
for(int j=0;j<hang;j++){
lei[i][j]='□';
mylei[i][j]='■';
}
//******************随机设置雷,雷的个数为k****************************
Set set=new TreeSet();
while(set.size()<k){
int random=(int)(Math.random()*hang*hang);
if(!set.contains(random)){
set.add(random);
m=random/hang;
n=random%hang;
mylei[m][n]='○';
}}
//*****************进行踩雷**********************************
do{
for(int i=0;i<hang;i++){
for(int j=0;j<hang;j++)
System.out.print(lei[i][j]+" ");
System.out.println();
}
System.out.println("踩雷?y/n %默认为n");
char s=input.next().charAt(0);
count++;
System.out.print("请输入行数");
m=input.nextInt()-1;
System.out.print("请输入列数:");
n=input.nextInt()-1;
if(mylei[m][n]=='○'){//if条件里面为所的是雷
lei[m][n]='○';
if(s=='y'){
System.out.println("恭喜你探到一个雷");
kk++; continue;
}else{
System.out.println("啊~你踩到雷了,游戏结束");break;
}}
else{//else里是当踩的不是雷
if(s=='y'){
System.out.println("这个不是雷!!!!!!游戏结束");break;
}else{
p=q=m;
r=t=n;
if(m!=0)
p=m-1;
if(m!=hang-1)
q=m+1;
if(n!=0)
r=n-1;
if(n!=hang-1)
t=n+1;
int sum=0;
for(int i=p;i<=q;i++)
for(int j=r;j<=t;j++){
if(mylei[i][j]=='○'){
sum++;
}
}
if(sum<=4){
for(int i=p;i<=q;i++)
for(int j=r;j<=t;j++){
if(mylei[i][j]!='○'&&lei[i][j]=='□'){
lei[i][j]=mylei[i][j];
}
}
}
char aa=(char)(sum+48);
lei[m][n]=aa;
}
}
}while(count<hang*hang&&kk<k);
//********************判断是否成功***********
for(int i=0;i<hang;i++){
for(int j=0;j<hang;j++)
System.out.print(mylei[i][j]+" ");
System.out.println();
}if(kk==k)
System.out.println("恭喜你游戏成功");
}
}