Java 按顺序显示一个数字递增的框

Java 按顺序显示一个数字递增的框,java,algorithm,Java,Algorithm,代码 我正在努力实现以下目标: 123 8 4 765 基本上是创建一个棋盘游戏,必须从一个位置开始,在同一位置结束,完成一个完整的圆圈。在这种情况下是一个正方形 有什么想法吗???考虑创建一个二维数组: gameBoard[3][3]; 然后用所需的值填充该板。游戏板完成后,您可以编写另一个函数来打印游戏板。考虑创建二维阵列: gameBoard[3][3]; 然后用所需的值填充该板。游戏板完成后,您可以编写另一个函数来打印该板。经过一些实验后,这可能会起作用: public stati

代码

我正在努力实现以下目标:

123
8 4
765
基本上是创建一个棋盘游戏,必须从一个位置开始,在同一位置结束,完成一个完整的圆圈。在这种情况下是一个正方形


有什么想法吗???

考虑创建一个二维数组:

gameBoard[3][3];

然后用所需的值填充该板。游戏板完成后,您可以编写另一个函数来打印游戏板。

考虑创建二维阵列:

gameBoard[3][3];

然后用所需的值填充该板。游戏板完成后,您可以编写另一个函数来打印该板。

经过一些实验后,这可能会起作用:

public static void printBox(int rows, int columns) {

    int sumOfColumns = 2 * columns + rows - 1;
    int sumOfRow = 2 * columns + 2 * rows - 2;

    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= columns; j++) {
            if (i == 1) {
                System.out.printf(String.format("%3d", j));
            } else if (j == 1) {
                System.out.printf(String.format("%3d", sumOfRow - (i + j - 1)));
            } else if (j == columns) {
                System.out.printf(String.format("%3d", i + j - 1));
            } else if (i == rows) {
                System.out.printf(String.format("%3d", sumOfColumns - j));
            } else {
                System.out.print("   ");
            }
        }
        System.out.print("\n");
    }
    System.out.print("\n");
}
结果:

  1  2  3
  8     4
  7  6  5

  1  2  3  4
 12        5
 11        6
 10  9  8  7

  1  2  3  4
 10        5
  9  8  7  6

经过一些实验后,这可能会起作用:

public static void printBox(int rows, int columns) {

    int sumOfColumns = 2 * columns + rows - 1;
    int sumOfRow = 2 * columns + 2 * rows - 2;

    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= columns; j++) {
            if (i == 1) {
                System.out.printf(String.format("%3d", j));
            } else if (j == 1) {
                System.out.printf(String.format("%3d", sumOfRow - (i + j - 1)));
            } else if (j == columns) {
                System.out.printf(String.format("%3d", i + j - 1));
            } else if (i == rows) {
                System.out.printf(String.format("%3d", sumOfColumns - j));
            } else {
                System.out.print("   ");
            }
        }
        System.out.print("\n");
    }
    System.out.print("\n");
}
结果:

  1  2  3
  8     4
  7  6  5

  1  2  3  4
 12        5
 11        6
 10  9  8  7

  1  2  3  4
 10        5
  9  8  7  6

但这将导致完全改变布局,更不用说我当前逻辑工作的架构了。。。我想知道是否有可能用一个1-D阵列来实现这一点??但这将导致布局完全改变,更不用说我当前逻辑工作的架构了。。。我想知道是否有可能用一个1-D阵列来实现它??它总是一个3x3矩阵吗?@NicholasK no。。。它可以增加保持一个上限在8…但它将始终是一个平方说,如果它是一个6x6矩阵,你将面临的数字大于10。由于每个数字将占据2个位置,您的正方形将如何对齐?@NicholasK我知道您的位置…但这只是实际值的表示/位置,我将获得一个数组…对齐不是问题…以上面的示例说明我希望我的瓷砖如何表示它将始终是3x3矩阵吗?@NicholasK不它可以增加保持一个上限在8…但它将始终是一个平方说,如果它是一个6x6矩阵,你将面临的数字大于10。由于每个数字将占据2个位置,您的正方形将如何对齐?@NicholasK我知道您的位置…但这只是实际值的表示/位置,我将获得一个数组…对齐不是问题…上面给出了一个示例,说明我希望我的瓷砖如何表示,并进行一些轻微的更改…但有效非常感谢:@Rohittomas更改是为了对齐必须做一些轻微的更改…但是非常有效谢谢:@Rohittomas更改是为了对齐