2012-10-16 102 views
0

對於我的任務,我必須創建一個Tic Tac Toe遊戲,其中董事會的任意大小...我知道如何創建一個3X3的板,但我不知道從哪裏開始。我的教練希望我們創建使用如何在Java中創建任意大小的井字棋板?

public TicTacToe(int edgesize) { 
} 

所以,當我創造我abitrary大小的板,我應該先從這個類裏面井字板?

public TicTacToe(int edgesize){ 
    int [][] board = new int[edgesize] [edgesize] 
} 
+0

int [] [] board = new int [edgesize] [edgesize]' – Amareswar

+2

你能寫一個標準的3x3板級嗎?有時,從具體的案例開始,然後回過頭來概括它是有幫助的。 – altendky

+0

閱讀關於變量範圍和類成員 –

回答

0

如果你

public TicTacToe(int edgesize){ 
    int [][] board = new int[edgesize] [edgesize] 
} 

board變量將是本地的構造函數本身。這意味着它將不在構造函數之外。

board實例級別的變量,並使用構造函數來實例化數組,所以,這將是提供給所有的實例方法在你TicTacToe類:

public class TicTacToe { 
    private int[][] board; 

    public TicTacTo(int size) { 
     this.board = new int[size][size]; 
     //initialize the board 
    } 

    //write methods to do stuffs with the board 
0

您的主板申報應在構造函數之外,即它應該是實例變量,它應該是您的類的屬性,以便您可以使用getters/setter輕鬆訪問/操作它。您當前將其聲明爲本地變量,這是一種錯誤的方法。

public class TicTacToe 
{ 
    int[][] board; 

    public TicTacToe(int edgesize) 
    { 
    this.board = new int[edgesize][edgesize]; 
    } 

    //Getter and setter for your "board". 

    public int[][] getBoard() 
    { return board; } 
    public void setBoard(int[][] board) 
    { this.board = board; } 

    //Some other methods for iterating your "board" maybe, etc. 
} 
+0

我不會添加setBoard()方法,直到您有需求爲止。另外,即使你可以從board.length中獲得它,我也會將邊緣存儲在一個實例變量中。因爲你稍後需要循環,檢查贏家等... – user949300

+0

@ user949300你絕對是對的,我只是試圖向OP展示全局範圍對這種情況的重要性。 – Juvanis

+0

我不會稱之爲全局變量。 –