⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minesweeper.java

📁 Java扫雷9*9核心程序算法
💻 JAVA
字号:
import java.util.Scanner;
public class MineSweeper {
	int[][] mineField;

    //控制雷区范围和输出雷的个数
  public void layMines(int row,int col,int mineCount)
  {
	  mineField = new int[row][col];
	
	  for(int i=0;i<mineCount;i++)
	  {
		int x = (int)(Math.random()*row);
		int y = (int)(Math.random()*col);
		if(mineField[x][y] == 9)
		{
			i--;
		}else{
		    mineField[x][y] = 9;
		
        for (int m = x-1;m <= x+1;m++)   //计算每个位置的周边位置有几个雷
	     {
		   if(m < 0 || m > row-1)
		   {
			  continue;                  //判断是否超出数组界限
		   }
		   for (int n = y-1; n <= y+1; n++)
		   {
			   if(n < 0 || n > col-1)
			   {
				  continue;              //判断是否超出数组界限
			   }else if(mineField[m][n]!=9)
				   {
					 mineField[m][n]++;
				   }
			   }
		   }
	    }
     }
  }


    public void printMine()
     {
        for(int i=0; i<mineField.length; i++) 
	    {
			 for(int j=0; j<mineField[i].length; j++) 
			  {
				System.out.print(mineField[i][j]+ " " );	
			  }	
		     System.out.println();
	     }	
     }

    public static void main(String[] args)
     {
	    Scanner sc = new Scanner(System.in);
		   System.out.print("请输入雷区行数:");
		int row = sc.nextInt();
		   System.out.print("请输入雷区列数:");
		int col = sc.nextInt();
           System.out.print("请输入雷区雷数:");
		int mineCount = sc.nextInt();
		
		MineSweeper ms = new MineSweeper();
           System.out.println(row + "*" + col + "," + mineCount + "个雷的雷区为:");
		   ms.layMines(row,col,mineCount);
		   ms.printMine();
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -