代码之家  ›  专栏  ›  技术社区  ›  Zoey

使用5x5数组创建Java递增字母表网格

  •  0
  • Zoey  · 技术社区  · 2 年前

    我需要重建的网格是这样的

     ABCDE
    T.....F
    S.....G
    R.....H
    Q.....I
    P.....J
     ONMLK
    

    我现在的网格是这样的

     ABCDE
    0.....0
    1.....1
    2.....2
    3.....3
    4.....4
     ONMLK
    

    我创建网格的代码

    // * Method * Creating the maze grid
    public static void createMazeGrid(){
        // First section of Maze Grid
        System.out.print("  ");
        for(char alphabet = 'A'; alphabet < 'F'; alphabet++)
            System.out.print(alphabet);
        System.out.println();
    
        // Middle section of Maze Grid
        // *TRY TO FIGURE OUT ALPHABET GRID*
        for(int i = 0; i < maze.length; i++) {
            System.out.print(" ");
            for (int j = 0; j < maze[i].length; j++) {
                maze[i][j] = ".";
                if (j == 0)
                    System.out.print(i + maze[i][j]);
                else if (j == maze[i].length - 1)
                    System.out.print(maze[i][j] + i);
                else
                    System.out.print(maze[i][j]);
            }
            System.out.println();
        }
    
        // Last section of Maze Grid
        System.out.print("  ");
        for(char alphabet = 'O'; alphabet > 'J'; alphabet--)
            System.out.print(alphabet);
        System.out.println();
    }
    

    我已经在public类中声明了这些变量,而不是我的main方法。我将如何实现这一点?我尝试将地图中间部分的int改为char,就像我的顶部和底部部分一样,但它只是将地图的中间部分去掉了。


    公共静态int numRows=5;


    公共静态int numCols=5;


    公共静态字符串[][]迷宫=新字符串[numRows][numCols];

    1 回复  |  直到 2 年前
        1
  •  1
  •   Franck    2 年前

    完成代码的一个简单方法是在已有输出的地方使用字符。

    public class Maze {
        public static int numRows = 5;
        public static int numCols = 5;
        public static String[][] maze = new String[numRows][numCols];
    // * Method * Creating the maze grid
    public static void createMazeGrid(){
        // First section of Maze Grid
        System.out.print("  ");
        for(char alphabet = 'A'; alphabet < 'F'; alphabet++)
            System.out.print(alphabet);
        System.out.println();
    
        // Middle section of Maze Grid
        // *TRY TO FIGURE OUT ALPHABET GRID*
        for(int i = 0; i < maze.length; i++) {
            System.out.print(" ");
            for (int j = 0; j < maze[i].length; j++) {
                maze[i][j] = ".";
                if (j == 0)
                    System.out.print((char)('T' - i) + maze[i][j]); // left side
                else if (j == maze[i].length - 1)
                    System.out.print(maze[i][j] + (char)('F' + i)); // right side
                else
                    System.out.print(maze[i][j]);
            }
            System.out.println();
        }
    
        // Last section of Maze Grid
        System.out.print("  ");
        for(char alphabet = 'O'; alphabet > 'J'; alphabet--)
            System.out.print(alphabet);
        System.out.println();
    }
    public static void main(String[] args) { createMazeGrid(); }
    }
    

    现在让我们测试一下:

    $ java Maze.java
      ABCDE
     T.....F
     S.....G
     R.....H
     Q.....I
     P.....J
      ONMLK
    

    看起来不错。:-)