在我小的时候,电脑上有一款自带的游戏,每当打开电脑发现电脑没有网时,就会把这个游戏打开玩一玩,当时还不知道这个游戏是怎么玩的,而且这个游戏看起来非常单调无聊,所以直到现在通过网上查找资料才知道这个游戏的规则是什么,但我最近看着这个游戏的逻辑很简单,也想自己尝试着用代码敲一敲。
一、整体思路扫雷游戏第一步,需要先确定雷区的长度和宽度,再确定雷区中地雷的个数。可以通过一个二维数组来实现,将二维数组中的所有数全部赋值为零,通过for循环来产生地雷,在数组中如果是地雷则值为-1,如果该值已经为-1了,则继续循环。通过这一操作我们可以把地雷的分布图给做出来。
再根据所得到的数组,通过对数组中的每个数进行访问,将每个数在二维数组中其他周围八个方格中有多少个地雷进行计数,如果该数组中的值为-1,则不需要进行操作,之后再把加起来的数填入该方格中,就能得到图像的内层图了。
图像建立好之后我们需要进行踩雷,插旗子或取旗子,打问号或去问号,三个操作。
踩雷有三种情况,一,如果踩到了方格在数组中的值为-1,则将所有的地雷全部显示出来,然后结束整个游戏。二,如果踩到了方格中的值为1,2,3,4,5,6,7,8就只需要显示该方格这个数就可以了。三,如果踩到的方格为0,则我们需要通过递归算法与计数这两步操作将其他周围方格为0全部显示出来并且它四周围绕的是不为0的方格。
插旗子和打问号都是两个一样的操作,选择一个在数组中的坐标,同时,我们可以建立一个新的数组,来记录这些坐标,当我们下一次通过踩地雷操作来访问这些坐标时,则会提示该坐标无法进行踩雷操作,而取旗子和去问号与插旗子和打问号操作相反,整体思路大致是这样。
二、递归算法与计数这是我在做扫雷游戏这个过程中遇到的一个难点,就是将他周围的方格如果没有地雷全部都显示出来的操作。可以通过上下左右四个方向进行递归操作,从而来显示他周围所有的方格。但是递归算法如果不对他进行限制,那么,它将永无止境的进行下去,但是程序的递归深度总是有限的,所以,当程序运行到一定深度时,程序就会自动报错,因此,我们可以通过计数操作,来将这些已经递归过的方格排除掉,通过这样的操作就能够实现方格中空格和数的显示了。
具体代码如下
private void chuli1(int H1,int H2){
StringBuilder JJ;
for(int i=H1-1;i<=H1 1;i )
{
for(int j=H2-1;j<=H2 1;j )
{
if(i>=0&&i<this.L2&&j>=0&&j<this.L1&&A[i][j]==0&&zhongyao[i][j]==0)
{
if(tuixiang[i].charAt(j)=='■')
{
qizi--;
}
if(tuixiang[i].charAt(j)=='?')
{
wenhao--;
}
JJ=new StringBuilder(tuixiang[i]);
JJ.setCharAt(j,' ');
tuixiang[i]=JJ.toString();
zhongyao[i][j] ;
chuli1(i,j);
}
else
if(i>=0&&i<this.L2&&j>=0&&j<this.L1&&A[i][j]!=0&&A[i][j]!=-1&&zhongyao[i][j]==0)
{
if(tuixiang[i].charAt(j)=='■')
{
qizi--;
}
if(tuixiang[i].charAt(j)=='?')
{
wenhao--;
}
JJ=new StringBuilder(tuixiang[i]);
JJ.setCharAt(j,(char)(A[i][j] 48));
zhongyao[i][j] ;
tuixiang[i]=JJ.toString();
}
}
}
}
三、代码的运行过程
主程序代码:
import java.util.Scanner;
public class SaoLei {
//雷区的长度
private int L1;
//雷区的宽度
private int L2;
//地雷的个数
private int shuliang;
//雷区图像1
private int [][]A;
//雷区图像2
private String []tuixiang;
//显示单元的个数
private int geshu;
//雷区图像3
private int [][]zhongyao;
//重要信息1
private int JDK;
//重要信息2
private int JKK;
//旗子的个数
private int qizi;
//问号的个数
private int wenhao;
//雷区长度和宽度的输入
private void T1(){
Scanner input=new Scanner(System.in);
System.out.println("提示:雷区的长度和宽度的范围为[2,64],地雷的个数要小于雷区的总个数");
System.out.print("请输入雷区的长度:");
do {
this.L1=input.nextInt();
if(this.L1<=1)
{
System.out.println("输入雷区的长度不正确!");
System.out.print("请重新输入:");
}
if(this.L1>64)
{
System.out.println("输入的雷区长度过大!");
System.out.print("请重新输入:");
}
}while (this.L1<=1||this.L1>64);
System.out.print("请输入雷区的宽度:");
do {
this.L2=input.nextInt();
if(this.L2<=1)
{
System.out.println("输入雷区的宽度不正确!");
System.out.print("请重新输入:");
}
if(this.L2>64)
{
System.out.println("输入的雷区宽度过大!");
System.out.print("请重新输入:");
}
}while (this.L2<=1||this.L2>64);
System.out.print("请输入地雷的个数:");
do {
this.shuliang=input.nextInt();
if(this.shuliang<=0||this.shuliang>=this.L1*this.L2)
{
System.out.println("输入地雷的个数不正确!");
System.out.print("请重新输入:");
}
}while (this.shuliang<=0||this.shuliang>=this.L1*this.L2);
tuixiang=new String[this.L2];
geshu=0;
zhongyao=new int[L2][L1];
qizi=0;
wenhao=0;
JDK=0;
JKK=0;
}
//地雷的随机分布
private void T2(){
A=new int[this.L2][this.L1];
int B,C;
for(int i=0;i<shuliang;i )
{
do {
B=(int)(0 Math.random()*this.L2);
C=(int)(0 Math.random()*this.L1);
if(A[B][C]!=-1)
{
A[B][C]=-1;
break;
}
}while (true);
}
T10();
}
//对图像进行初始化
private void T3(){
StringBuilder []J=new StringBuilder[this.L2];
System.out.print(" ");
for(int i=0;i<this.L1;i )
{
if(i 1<10)
{
System.out.print(i 1);
System.out.print(" ");
}
else
{
System.out.print(i 1 " ");
}
}
System.out.println();
System.out.print(" ▏-");
for(int i=1;i<L1;i )
{
System.out.print("-▏-");
}
System.out.print("-▏");
for(int i=0;i<this.L2;i )
{
J[i]=new StringBuilder("");
}
for(int i=0;i<this.L2;i )
{
for(int j=0;j<this.L1;j )
{
J[i].append("□");
}
}
for(int i=0;i<this.L2;i )
{
tuixiang[i]=J[i].toString();
}
System.out.println();
for(int i=0;i<this.L2;i )
{
if(i 1<10)
{
System.out.print(" " (i 1) "▏");
}
else
{
System.out.print(i 1 "▏");
}
for(int j=1;j<this.L1 1;j )
{
System.out.print(tuixiang[i].charAt(j-1) " ▏");
}
System.out.println();
}
}
//玩家进行的操作
private void T4(){
Scanner input=new Scanner(System.in);
int A,AA,AAA;
int []B=new int[2];
while (geshu!=L1*L2-shuliang)
{
System.out.print(" ");
System.out.printf("当前玩家的得分为【%d】",geshu);
System.out.println();
System.out.println("请玩家选择如下操作");
System.out.print("""
1.插旗子或取旗子
2.打问号或去除问号
3.揭开(踩地雷◑﹏◐)
""");
System.out.print("请输入你的选择:");
do {
A=input.nextInt();
if(A<1||A>3)
{
System.out.println("输入错误!");
System.out.print("请重新输入:");
}
}while (A<1||A>3);
if(A==1)
{
do {
System.out.println("请玩家选择如下操作");
System.out.print("""
1.插旗子
2.取旗子
3.退出
""");
do {
AA=input.nextInt();
if(AA<1||AA>3)
{
System.out.println("输入错误!");
System.out.print("请重新输入:");
}
if(AA==2&&qizi==0)
{
System.out.println("该雷区没有旗子可取!");
System.out.println("请重新输入:");
}
if(AA==1&&qizi==L1*L2)
{
System.out.println("该区域的旗子已经被插满了!");
System.out.println("请重新输入:");
}
}while ((AA<1||AA>3)||(AA==2&&qizi==0)||(AA==1&&qizi==L1*L2));
if(AA==1)
{
do{
T12(B);
if(tuixiang[B[0]-1].charAt(B[1]-1)==' ')
{
System.out.println("该区域没有地雷!");
System.out.print("请重新输入:");
}
if(tuixiang[B[0]-1].charAt(B[1]-1)=='■')
{
System.out.println("该区域已经*旗子了!");
}
if(tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8')
{
System.out.println("该区域没有地雷!");
System.out.print("请重新输入:");
}
}while(tuixiang[B[0]-1].charAt(B[1]-1)==' '||tuixiang[B[0]-1].charAt(B[1]-1)=='■'||tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8');
T6(B);
T8();
}
else
if(AA==2)
{
do{
T12(B);
if(tuixiang[B[0]-1].charAt(B[1]-1)!='■')
{
System.out.println("该区域没有旗子!");
}
}while(tuixiang[B[0]-1].charAt(B[1]-1)!='■');
T13(B);
T8();
}
else
{
T8();
break;
}
}while(true);
}
else
if(A==2)
{
do {
System.out.println("请玩家选择如下操作");
System.out.print("""
1.打问号
2.去问号
3.退出
""");
do {
AAA=input.nextInt();
if(AAA<1||AAA>3)
{
System.out.println("输入错误!");
System.out.print("请重新输入:");
}
if(AAA==2&&wenhao==0)
{
System.out.println("该雷区没有问号!");
System.out.println("请重新输入:");
}
if(AAA==1&&wenhao==L1*L2)
{
System.out.println("该区域的问号已经被填满了!");
System.out.println("请重新输入:");
}
}while ((AAA<1||AAA>3)||(AAA==2&&wenhao==0)||(AAA==1&&wenhao==L1*L2));
if(AAA==1)
{
do{
T12(B);
if(tuixiang[B[0]-1].charAt(B[1]-1)==' ')
{
System.out.println("该区域没有问号!");
System.out.print("请重新输入:");
}
if(tuixiang[B[0]-1].charAt(B[1]-1)=='?')
{
System.out.println("该区域已经有问号了!");
}
if(tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8')
{
System.out.println("该区域没有问号!");
System.out.print("请重新输入:");
}
}while(tuixiang[B[0]-1].charAt(B[1]-1)==' '||tuixiang[B[0]-1].charAt(B[1]-1)=='?'||tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8');
T7(B);
T8();
}
else
if(AAA==2)
{
do{
T16(B);
if(tuixiang[B[0]-1].charAt(B[1]-1)!='?')
{
System.out.println("该区域没有问号!");
}
}while(tuixiang[B[0]-1].charAt(B[1]-1)!='?');
T14(B);
T8();
}
else
{
T8();
break;
}
}while (true);
}
else
{
T15(B);
T9(B);
T8();
if(JKK==1)
{
System.out.println("该区域被旗子占据!");
System.out.println("请将旗子去除在进行操作");
}
else
if(JKK==2)
{
System.out.println("该区域被问号占据!");
System.out.println("请将问号去除在进行操作");
}
JKK=0;
if(JDK==0)
{
T11();
if(geshu==L1*L2-shuliang)
{
System.out.println("恭喜玩家获得胜利^o^");
}
System.out.println("\n");
}
else
{
System.out.println("游戏失败!");
System.out.println("(╯‵□′)╯炸弹!•••*~●");
break;
}
}
}
}
//揭开输入
private int[] T15(int []B){
Scanner input=new Scanner(System.in);
do {
System.out.print("请输入雷区的坐标:");
B[0]=input.nextInt();
B[1]=input.nextInt();
if((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0))
{
System.out.println("输入的坐标错误!");
}
else
if(tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ')
{
System.out.println("该区域没有地雷!");
}
}while((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0)||tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ');
return B;
}
//旗子坐标输入
private int[] T12(int []B){
Scanner input=new Scanner(System.in);
do {
System.out.print("请输入旗子的坐标:");
B[0]=input.nextInt();
B[1]=input.nextInt();
if((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0))
{
System.out.println("输入的坐标错误!");
}
else
if(tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ')
{
System.out.println("该区域没有地雷!");
}
}while((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0)||tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ');
return B;
}
//问号坐标输入
private int[] T16(int []B){
Scanner input=new Scanner(System.in);
do {
System.out.print("请输入旗子的坐标:");
B[0]=input.nextInt();
B[1]=input.nextInt();
if((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0))
{
System.out.println("输入的坐标错误!");
}
else
if(tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ')
{
System.out.println("该区域没有地雷!");
}
}while((B[0]>this.L2||B[0]<=0)||(B[1]>this.L1||B[1]<=0)||tuixiang[B[0]-1].charAt(B[1]-1)=='1'||tuixiang[B[0]-1].charAt(B[1]-1)=='2'||tuixiang[B[0]-1].charAt(B[1]-1)=='3'||tuixiang[B[0]-1].charAt(B[1]-1)=='4'||tuixiang[B[0]-1].charAt(B[1]-1)=='5'||tuixiang[B[0]-1].charAt(B[1]-1)=='6'||tuixiang[B[0]-1].charAt(B[1]-1)=='7'||tuixiang[B[0]-1].charAt(B[1]-1)=='8'||tuixiang[B[0]-1].charAt(B[1]-1)==' ');
return B;
}
//给雷区加旗帜
private void T6(int []B){
StringBuilder A;
if(tuixiang[B[0]-1].charAt(B[1]-1)=='?')
{
wenhao--;
}
qizi ;
A=new StringBuilder(tuixiang[B[0]-1]);
A.setCharAt(B[1]-1,'■');
tuixiang[B[0]-1]=A.toString();
}
//给雷区减旗帜
private void T13(int []B){
StringBuilder A;
A=new StringBuilder(tuixiang[B[0]-1]);
A.setCharAt(B[1]-1,'□');
tuixiang[B[0]-1]=A.toString();
qizi--;
}
//给图像加问号
private void T7(int []B){
StringBuilder A;
if(tuixiang[B[0]-1].charAt(B[1]-1)=='■')
{
qizi--;
}
wenhao ;
A=new StringBuilder(tuixiang[B[0]-1]);
A.setCharAt(B[1]-1,'?');
tuixiang[B[0]-1]=A.toString();
}
//给图像减问号
private void T14(int []B){
StringBuilder A;
A=new StringBuilder(tuixiang[B[0]-1]);
A.setCharAt(B[1]-1,'□');
tuixiang[B[0]-1]=A.toString();
wenhao--;
}
//揭开
private void T9(int []B){
StringBuilder JJ;
int H1,H2;
if(tuixiang[B[0]-1].charAt(B[1]-1)=='■')
{
JKK=1;
}
else
if(tuixiang[B[0]-1].charAt(B[1]-1)=='?')
{
JKK=2;
}
else
{
if(A[B[0]-1][B[1]-1]==-1)
{
T15();
JDK=1;
}
else
{
if(A[B[0]-1][B[1]-1]==0)
{
H1=B[0]-1;
H2=B[1]-1;
chuli1(H1,H2);
}
else
{
JJ=new StringBuilder(tuixiang[B[0]-1]);
JJ.setCharAt(B[1]-1,(char)(A[B[0]-1][B[1]-1] 48));
tuixiang[B[0]-1]=JJ.toString();
zhongyao[B[0]-1][B[1]-1] ;
}
}
}
}
//处理1
private void chuli1(int H1,int H2){
StringBuilder JJ;
for(int i=H1-1;i<=H1 1;i )
{
for(int j=H2-1;j<=H2 1;j )
{
if(i>=0&&i<this.L2&&j>=0&&j<this.L1&&A[i][j]==0&&zhongyao[i][j]==0)
{
if(tuixiang[i].charAt(j)=='■')
{
qizi--;
}
if(tuixiang[i].charAt(j)=='?')
{
wenhao--;
}
JJ=new StringBuilder(tuixiang[i]);
JJ.setCharAt(j,' ');
tuixiang[i]=JJ.toString();
zhongyao[i][j] ;
chuli1(i,j);
}
else
if(i>=0&&i<this.L2&&j>=0&&j<this.L1&&A[i][j]!=0&&A[i][j]!=-1&&zhongyao[i][j]==0)
{
if(tuixiang[i].charAt(j)=='■')
{
qizi--;
}
if(tuixiang[i].charAt(j)=='?')
{
wenhao--;
}
JJ=new StringBuilder(tuixiang[i]);
JJ.setCharAt(j,(char)(A[i][j] 48));
zhongyao[i][j] ;
tuixiang[i]=JJ.toString();
}
}
}
}
//图像显示
private void T8(){
System.out.print(" ");
for(int i=0;i<this.L1;i )
{
if(i 1<10)
{
System.out.print(i 1);
System.out.print(" ");
}
else
{
System.out.print(i 1 " ");
}
}
System.out.println();
System.out.print(" ▏-");
for(int i=1;i<L1;i )
{
System.out.print("-▏-");
}
System.out.print("-▏");
System.out.println();
for(int i=0;i<this.L2;i )
{
if(i 1<10)
{
System.out.print(" " (i 1) "▏");
}
else
{
System.out.print(i 1 "▏");
}
for(int j=1;j<this.L1 1;j )
{
System.out.print(tuixiang[i].charAt(j-1) " ▏");
}
System.out.println();
}
}
//String图像处理
private void T10(){
int J=0;
for(int i=0;i<this.L2;i )
{
for(int j=0;j<this.L1;j )
{
if(A[i][j]!=-1)
{
if(i-1>=0&&j-1>=0)
{
if(A[i-1][j-1]==-1)
{
J ;
}
}
if(i-1>=0)
{
if(A[i-1][j]==-1)
{
J ;
}
}
if(i-1>=0&&j 1<this.L1)
{
if(A[i-1][j 1]==-1)
{
J ;
}
}
if(j-1>=0)
{
if(A[i][j-1]==-1)
{
J ;
}
}
if(j 1<this.L1)
{
if(A[i][j 1]==-1)
{
J ;
}
}
if(i 1<this.L2&&j-1>=0)
{
if(A[i 1][j-1]==-1)
{
J ;
}
}
if(i 1<this.L2)
{
if(A[i 1][j]==-1)
{
J ;
}
}
if(i 1<this.L2&&j 1<this.L1)
{
if(A[i 1][j 1]==-1)
{
J ;
}
}
A[i][j]=J;
}
J=0;
}
}
}
//geshu计数
private void T11() {
for(int i=0;i<L2;i )
{
for(int j=0;j<L1;j )
{
if(zhongyao[i][j]==1)
{
geshu ;
}
if(zhongyao[i][j]!=0)
{
zhongyao[i][j] ;
}
}
}
}
//最后的显示
private void T15(){
StringBuilder II;
for(int i=0;i<L2;i )
{
II=new StringBuilder(tuixiang[i]);
for(int j=0;j<L1;j )
{
if(A[i][j]==-1)
{
II.setCharAt(j,'●');
}
}
tuixiang[i]=II.toString();
}
}
//游戏说明
private void youxishuoming(){
System.out.println("""
1.尽快找到雷区中的所有不是地雷的格子,而不许踩到地雷。
2.点开的数字是几,则说明该数字旁边的8个位置中有几个雷。
3.如果挖开的是地雷,则会输掉游戏。
4.其中“■”代表旗子,“●”代表地雷。
5.插旗子的作用是表示该区域有地雷。
6.打问号的作用是表示该区域不确定是否有地雷。
7.插旗子或打问号的区域无法进行揭开操作。
""");
}
//总方法
public void asd(){
Scanner input=new Scanner(System.in);
int A;
do {
System.out.print("""
《扫雷游戏》
1.开始游戏
2.游戏说明
3.退出游戏
""");
System.out.print("请输入你的选择:");
do {
A=input.nextInt();
if(A!=1&&A!=2&&A!=3)
{
System.out.println("输入错误!");
System.out.print("请重新输入:");
}
}while(A!=1&&A!=2&&A!=3);
if(A==1)
{
T1();
T2();
T3();
T4();
}
else
if(A==2)
{
youxishuoming();
}
else
{
System.exit(0);
}
}while (true);
}
}
测试代码
public class str1 {
public static void main(String[] args) {
SaoLei A=new SaoLei();
A.asd();
}
}
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved