自定义地雷数的扫雷(控制台运行)

package test1;
//导包
import java.util.Scanner;
import java.util.Random;

public class tst1{
    public static void main (String[]args) {
    	//设置雷的个数
    	System.out.println("请输入雷的个数:");
    	char [][] a = new char [16][30];  //char类型的二维数组16行30列,用于存放字符类型
    	
    	//以Random为模板创建一个Random类对象,调用Random类的函数 对 对象进行初始化
    	Random rnd = new Random();        
    	Scanner sc = new Scanner(System.in);
    	int MineNum = sc.nextInt();
    	System.out.println("雷的个数:"+MineNum);
    	
    	//随机布雷  需注意处理随机行列为相同值的特殊情况,使用while循环
    	while(MineNum>0){
    		//获取随机数
    		int row = rnd.nextInt(16);   //地雷的行列数值随机
    		int column = rnd.nextInt(30);
    		
            //随机行列确定后,布雷,还需布置雷的个数减一
    		if(a[row][column]!=*){
    			a[row][column]=*;
    			MineNum--;
    		}
    	}
    	
    	//扫雷
    	for(int i=0;i<16;i++){
    		for(int j=0;j<30;j++){
    			
    			int LeiNum=0;  //一个方格检测到的地雷个数
    			
    			//若方格本身不是地雷,检测此方格周围八个方格的地雷个数,累加赋值
    			if(a[i][j]==0){
    				//使用八个if判断语句检测
    				if(i-1>=0&&j-1>=0&&a[i-1][j-1]==*){
    					LeiNum++;
    				}
    				if(i-1>=0&&a[i-1][j]==*){
    					LeiNum++;
    				}
    				if(j<29){
    					if(i-1>0&&a[i-1][j+1]==*){
    						LeiNum++;
    					}
    					if(a[i][j+1]==*){
    						LeiNum++;
    					}
    				}
    				if(j-1>0&&a[i][j-1]==*){
    					LeiNum++;
    				}
    				if(i<15){
    					if(j-1>0&&a[i+1][j-1]==*){
    						LeiNum++;
    					}
    					if(a[i+1][j]==*){
    						LeiNum++;
    					}
    				}
    				if(i<15&&j<29){
    					if(a[i+1][j+1]==*){
    						
    						LeiNum++;
    					}
    				}
    				//int类型转char类型 ,再赋值
    				a[i][j]=(char)(LeiNum+0);//(LeiNum+48)||(LeiNum+0)
    			}
    		}
    	}
    	
    	//打印检测的结果
    	for(int i=0;i<16;i++){
    		for(int j=0;j<30;j++){
    			System.out.print(a[i][j]);
    		}
    		System.out.println();//换行打印
    	}
    }
}

本次项目是使用控制台打印扫雷布雷的结果,需注意细节。调用构造函数创建对象,初始化对象。创建和使用二维数组。不同类型之间的转换。扫雷的时候需要注意二维数组边界的情况,把检测到的地雷个数累加后使用int类转char类的方法赋值给char类型的二维数组,最后再打印出扫雷游戏的布雷情况。

结果展示:

经验分享 程序员 微信小程序 职场和发展