显示按顺序递增的框

时间:2018-08-22 03:49:26

标签: java algorithm

代码

        int rows=3, columns=3, i, j;
        for(i = 1; i <= rows; i++)
        {
            for(j = 1; j <= columns; j++)
            {
                if(i == 1 || i == rows || j == 1 || j == columns)
                {
                    System.out.print(count); 
                    count++;
                }
                else
                {
                    System.out.print(" "); 
                }
            }
            System.out.print("\n"); 

        }   

以下代码输出以下内容:

输出

123
4 5
678

我要实现的目标如下:

123
8 4
765

基本上创建一个棋盘游戏,该棋盘游戏必须从一个位置开始并在同一位置结束,从而完成一个完整的圆。在这种情况下为正方形。

任何想法

2 个答案:

答案 0 :(得分:4)

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

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

测试用例:

public static void main(String[] args) {
    printBox(3, 3);
    printBox(4, 4);
    printBox(3, 4);
}

结果:

  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 :(得分:2)

考虑创建二维数组:

gameBoard[3][3];

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