(Java)初始化后打印Tic Tac Toe Board

时间:2012-05-09 18:59:16

标签: java

我正在制作一款简单的Tic Tac Toe游戏。我已宣布我的3乘3板并将每个游戏区域初始化为' '或空格字符。

然而,当我尝试打印电路板时,我得到的东西看起来像这样:

   1   2   3
A    |   |    
   ----------
B    |   |   
   ----------
C    |   |   

什么都没打印出来。

这是我的TicTacToe.java:

import java.util.Scanner;

public class TicTacToe{

    public static void main(String[] args) {
           new TicTacToe();
    }
    private char[][] board;
    private char player;

    public TicTacToe() {
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j <3; j++)
         {
           board[i][j] = ' ';
         }
    }
     player = 'X';

    System.out.println(" 1 2 3");
    System.out.println("A" + board[0][0] + "|" + board[0][1] + "|" + board[0][2]);  
    System.out.println("-----");
    System.out.println("B" + board[1][0] + "|" + board[1][1] + "|" + board[1][2]);  
    System.out.println("-----");
    System.out.println("C" + board[2][0] + "|" + board[2][1] + "|" + board[2][2]);                        
    }

我从Murach的第4版中读到,当执行类时,构造函数也会被执行,因此我假设将执行打印函数。

问题:

如何将我上面的tic tac toe board打印到我的控制台?

编辑: 感谢您的帮助。结果我不得不调用构造函数而不是自动执行它。上面的代码不包含解决方案。

4 个答案:

答案 0 :(得分:2)

执行类时,会执行其main方法。您的main方法为空,因此不会发生任何事情。如果要调用构造函数,则必须明确地这样做。

public static void main (String[] args) {
    new TicTacToe();
}

答案 1 :(得分:1)

没有任何内容正在打印,因为您没有在main()内实例化任何内容。在发生任何事情之前,你必须在main()内使用你的对象。

答案 2 :(得分:1)

您的主要方法实际上没有任何内容

import java.util.Scanner;

public class TicTacToe{

public static void main(String[] args) {
    // insert code to set up your tictactoe object  here
    TicTacToe ttt = new TicTacToe();
}
private char[][] board;
private char player; // 'X' or 'O'

public TicTacToe() {
for(int i = 0; i < 3; i++)
{
    for(int j = 0; j <3; j++)
     {
       board[i][j] = ' ';
     }
}
 player = 'X';

System.out.println(" 1 2 3");
System.out.println("A" + board[0][0] + "|" + board[0][1] + "|" + board[0][2]);  
System.out.println("-----");
System.out.println("B" + board[1][0] + "|" + board[1][1] + "|" + board[1][2]);  
System.out.println("-----");
System.out.println("C" + board[2][0] + "|" + board[2][1] + "|" + board[2][2]);                        
}

答案 3 :(得分:1)

我在代码中做了一些更改

public class TicTacToe {

    public static void main(String[] args) {
        new TicTacToe();
    }

    private char[][] board = new char[3][3];
    private char player;

    public TicTacToe() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                board[i][j] = ' ';
            }
        }
        player = 'X';

        System.out.println(" 1 2 3");
        System.out.println("A" + board[0][0] + "|" + board[0][1] + "|"
                + board[0][2]);
        System.out.println("-----");
        System.out.println("B" + board[1][0] + "|" + board[1][1] + "|"
                + board[1][2]);
        System.out.println("-----");
        System.out.println("C" + board[2][0] + "|" + board[2][1] + "|"
                + board[2][2]);
    }
}

希望这会对你有所帮助。