私は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)
したがって、掃海艇を印刷すると、地雷探知機と @ が表示されます。
しかし、私はそれをどこで使うべきかわかりません。または、誰かがより簡単な方法を知っている場合は?ありがとう