我正在制作一款简单的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打印到我的控制台?
编辑: 感谢您的帮助。结果我不得不调用构造函数而不是自动执行它。上面的代码不包含解决方案。
答案 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]);
}
}
希望这会对你有所帮助。