tac-toe-javaoop终极tic-tac-toe网格

whitzsjs  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(244)

我正在用面向对象的概念用java编写一个最终的tic-tac-toe,我正在尝试制作电路板并正确地打印出来。我做了一个bigboard类,它有9个小板,每个小板由9个盒子组成,每个盒子都有一个索引。当我试着打印的时候,我得到了这个。

| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |

| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |

| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |

而不是这个

| 0 | 1 | 2 | | 0 | 1 | 2 | | 0 | 1 | 2 | 
| 3 | 4 | 5 | | 3 | 4 | 5 | | 3 | 4 | 5 |
| 6 | 7 | 8 | | 6 | 7 | 8 | | 6 | 7 | 8 |

| 0 | 1 | 2 | | 0 | 1 | 2 | | 0 | 1 | 2 | 
| 3 | 4 | 5 | | 3 | 4 | 5 | | 3 | 4 | 5 |
| 6 | 7 | 8 | | 6 | 7 | 8 | | 6 | 7 | 8 |

| 0 | 1 | 2 | | 0 | 1 | 2 | | 0 | 1 | 2 | 
| 3 | 4 | 5 | | 3 | 4 | 5 | | 3 | 4 | 5 |
| 6 | 7 | 8 | | 6 | 7 | 8 | | 6 | 7 | 8 |

大板类打印方法

void print () {
        System.out.println("printing the " + this.name  + " info....");

        for (int i = 0; i < boards.length; i++) {
            if (i!=0 && i%boardColSize == 0) 
                System.out.println();
            boards [i].print();
        }
        System.out.println("");
    }
}

小板类打印方法

void print () {
        for (int i = 0; i < boxes.length; i++) {
            if (i!=0 && i%boardColSize == 0) 
                System.out.println();
            boxes [i].print();
        }
        System.out.println("");

盒类打印方法

void print() {
        if (Integer.valueOf(placeHolder) == 2 || Integer.valueOf(placeHolder) == 5 || Integer.valueOf(placeHolder) == 8)
            System.out.print("| "+placeHolder + " |");
        else
            System.out.print("| "+ placeHolder + " ");
    }

}

如何将小板格式化为3x3网格?

hfsqlsce

hfsqlsce1#

您的small board print在方法末尾有一个println()调用,这意味着每个small board始终打印在新行上。为了得到你想要的输出,你需要能够一次打印一行你的小板。例如。
打印小板0行0
打印小板1第0行
打印小板2第0行
打印换行符
打印小板0第1行
...

相关问题