0

我正在创建一个简单的井字游戏。我已经声明了我的 3 x 3 板并将每个游戏区域初始化为' '一个空格字符。

但是,当我尝试打印电路板时,我会得到如下所示的内容:

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

没有任何东西被打印出来。

这是我的井字游戏.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 版中读到,当类被执行时,构造函数也会被执行,所以我假设打印函数将被执行。

问题:

如何将上面的井字游戏板打印到我的控制台上?

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

4

4 回答 4

2

当一个类被执行时,它的main方法被执行。你的main方法是空的,所以什么都没有发生。如果你想调用构造函数,你必须明确地这样做。

public static void main (String[] args) {
    new TicTacToe();
}
于 2012-05-09T19:01:25.790 回答
1

什么都没有打印,因为您没有在main(). main()在发生任何事情之前,您必须在其中使用您的对象。

于 2012-05-09T19:00:57.070 回答
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]);                        
}
于 2012-05-09T19:03:16.750 回答
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]);
    }
}

希望这会帮助你。

于 2012-05-09T19:04:53.217 回答