java - 如何将 int 数字更改为等效的 asci 数字?

标签 java arrays ascii minesweeper

我正在以 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)

所以当我打印扫雷器时,我可以看到地雷探测器和@

但是我不知道在哪里使用它。 或者如果有人知道更简单的方法? 谢谢

最佳答案

为什么不直接将矩阵设为 char 类型的数组呢?在数学方面,它们的行为类似于整数,但会作为字符打印到屏幕上。

否则,您需要System.out.print("| "+ (char)(m[i][j]) + "| ");。您只需将整数转换为字符即可使字符串正确连接。此外,您可以将地雷分配给矩阵,如 (int)('@') 以使代码更清晰。

这两种方法都有点草率。如果我要实现扫雷,我会创建一个单独的图 block 类,其中包含一个字段,指示它是否包含炸弹,或者它距离炸弹有多远,以及它是否包含旗帜。然而,对于第一次尝试,你的方法很好。

关于java - 如何将 int 数字更改为等效的 asci 数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886056/

相关文章:

java - Android Studio - Gradle 同步错误

php - 返回数组而不是对象

JavaScript/jQuery 多维循环

python:从 serial.read() 解析字符串

java - 如何从给定的字符串中获取月份和日期?

java - Log4J2 - 如何设置对我的新记录器的引用

java - 生成消息方法

javascript - 我的循环会循环,但不会显示我想要的内容

c# - 如何将字符串转换为 ASCII

你能把 ASCII 码转换成 C 中的字符吗?