我在 5x5 的矩阵中制作和扫雷。我随机分配了地雷,还为地雷制作了传感器,我认为它工作正常。
public Minesweeper(){
matrix = new int [5][5];
int minesnumber = (int)(Math.random()*10);
for(int mines = 0 ; mines < minesnumber ; mines ++){
int i, j;//Coordinates in the array
do{
i = (int)(Math.random()*5);//random values to i and j
j = (int)(Math.random()*5);
}while(matrix[i][j] == minesnumber );
matrix[i][j] = 64;//ascii = @
for(int a = Math.max(0, i-1); a < Math.min(5,i+2); a++){// to work on the array only
for(int b = Math.max(0,j-1); b < Math.min(5,j+2); b++){
if(matrix[a][b] != 64 && matrix[a][b]<9){// not a bomb
matrix[a][b]++;}
}
}
}
}
}
我的主要任务是打印扫雷
public static void main(String args[]){
Minesweeper matrix = new Minesweeper();
for(int i = 0 ; i<5 ; i++){
System.out.println("\n ======================================");
for(int j = 0 ; j<5 ; j++){
int [][]m = matrix.getMatrix();
System.out.print("| " + m[i][j] + " | ");
}
}
System.out.println("\n ======================================");
}
它显示了炸弹的 64 和炸弹传感器的数量,我想将 64 转换为“@”,我想使用Character.toChars(64)
所以当我打印扫雷器时,我可以看到地雷探测器和@
但我不知道在哪里使用它。或者如果有人知道更简单的方法?谢谢