2012-05-09 36 views
0

我正在創建一個簡單的Tic Tac Toe遊戲。我已經宣佈了3乘3棋盤,並將每個玩區初始化爲' '或空格字符。(Java)創建後打印Tic Tac Toe Board

然而,當我嘗試打印板,使我得到的東西看起來是這樣的:

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版讀取執行類時,構造函數執行,以及,所以我假定打印功能將被執行。

問:

如何打印我的井字板像上面我的控制檯中的一個?

編輯: 謝謝你的幫助。原來我必須調用構造函數而不是自動執行它。上面的代碼不包含解決方案。

+0

這是功課嗎? – Jivings

+0

您似乎有一個空的'main'方法,那裏發生了什麼? – Benj

+0

提示:生成一個最簡單的工作示例,而不是發佈大量代碼:p(這也是一個很好的方法來自己解決問題,但不是在這種情況下,雖然) – keyser

回答

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]); 
    } 
} 

希望這將幫助你一些變化。

1

什麼也沒有打印,因爲你沒有實例化main()裏面的任何東西。在發生任何事情之前,您必須使用main()內的對象。

2

當一個類被執行時,它的main方法被執行。您的main方法爲空,因此沒有任何事情發生。如果你想調用構造函數,你必須明確地這樣做。

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

我得到一個錯誤'在線程中的異常「main」java.lang.NullPointerException'指向我在哪裏設置'board [i] [j] ='';' – Huy

+1

@hyngyn你永遠不會初始化你的數組。 – Jeffrey

+1

@hyngyn初始化「board」,設置其大小 – keyser

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]);       
}