如何在TicTacToe板之间打印线条

时间:2015-02-02 12:21:39

标签: java if-statement for-loop

我制作了一个双人控制台tic tac toe程序,但是在玩游戏时显示的棋盘是空白单元格,除了侧面和底部表示法。我想在行和列之间打印行,但我不知道如何。这是涉及我的董事会的代码:

public void createBoard()
        {
            //This method creates the 3x3 board and fills the board with 0s
            for (int row = 0; row < board.length; row++) {
                if(row > 0) System.out.println("-+-+-");
                for (int column = 0; column < board[0].length; column++) {
                    if(column > 0) System.out.println("|");
                    board[row][column] = 0;
                }
            }
        }
        public void displayBoard(){
            //creates right amount of cells for 3 rows
            for (int row=0; row < board.length; row++)
            {
                //spaces between row notation and board + prints row notation
                System.out.print("\t" +(char)('a'+ row) + " "); 
                //creates right amount of cells for the 3 columns
                for (int column=0; column < board.length; column++)
                {
                    if(board[row][column]==BLANK){
                        System.out.print("\t");
                    }
                    else if(board[row][column]==X){
                        System.out.print("\tX");
                    }
                    else{
                        System.out.print("\tO");
                    }
                }
                //blanks on right side of board
                System.out.println();
            }
            //spacing between columns
            System.out.println("\t \t1 \t2 \t3");
            checkTie();
        }

1 个答案:

答案 0 :(得分:0)

这取决于控制台的功能。几乎无处不在的最简单方法是使用两个字符|(bar)和-(减号)。您可能还想在交叉点使用+(加号)。

某些终端具有特定的字符来绘制线条和框,但这意味着您的代码必须确定终端的类型,它的功能,有时还有字体。有一些图书馆可以帮助您(如ncurses)。 laterna是一个Java库,它试图为您提供类似的功能。

编辑:看看这个代码示例:

for (int row=0; row < board.length; row++) 
{
    if(row > 0) System.out.println("-+-+-");
    for (int column=0; column < board.length; column++)
    {
        if(column > 0) System.out.println("|");
        ... print cell value ...
     }
}