简体   繁体   中英

Creating a Java increasing alphabet grid with a 5x5 array

The grid I need to recreate looks like this

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

The grid I have now looks like this

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

My code for creating the grid

// * 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();
}

I have already declared these variables in the public class, not my main method. How would I achieve this? I tried changing the int's in the middle section of my map to char like my top and bottom section but it just cuts the middle portion of the map out.


public static int numRows = 5;


public static int numCols = 5;


public static String[][] maze = new String[numRows][numCols];

A simple way to complete your code is the use of chars where you already have your output.

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(); }
}

Now let's test it:

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

Looks good. :-)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM