這是我第一次在Stackoverflow上,這個問題可能之前已經被問過了,但我沒有找到那些線程的麻煩。我目前正在開發一款井字遊戲Android遊戲,作爲我的第一個應用程序項目。Java - 如何使實例實例在主實例中獲取變量?
案件是我正在對我的PlayState
-類的工作,其中游戲的主要部分將發生。 PlayState
將成爲您在菜單中選擇它時顯示的實例。這是我如何在PlayState
中完成的:
因爲我有PlayState
作爲一個實例,不想有任何靜態方法。我還創建了一個EndMechanism
-類,它在PlayState
中創建爲一個實例。該課程將檢查Wins/Lose/Draw。我想這樣做的方法是讓每個Tile(3x3)獲得由循環中的變量標記的字符(X或O)。
boardTileMark[row][col] = 'x';
正如我已經成功地做到這一點通過Character
類:
boardTiles = new BoardTile[3][3]; // To make the Tiles 3 by 3
boardTileMark = new Character[boardTiles.length][boardTiles[0].length];
我用真實BoardTile的大小,以使標記的尺寸號碼。所以一切都到現在爲止。
然後它的EndMechanism
-class作爲一個實例:
endMech = new EndMechanism();
不進入到太多的細節一切正常,到目前爲止,當我按下一個正方形,它得到一個X或O(圖形)boardTile
和在boardTileMark
上也同時給出了字符'x'或'o'。
這就是現在的問題是:
當我要檢查,如果這是一個雙贏,繪製或失去EndMechanism
,我真的不知道如何拿起這些標記爲EndMechanism
,無需拷貝過來的值然後在EndMechanism
中製作相同的代碼。
這是我如何將boardTileMark設置爲x或o。
public void markBoardTiles(){
for(int row = 0;row < boardTiles.length;row++){
for(int col = 0;col < boardTiles[0].length;col++){
if(boardTiles[row][col].selected() && boardTiles[row][col].cross()){
boardTileMark[row][col] = 'x';
}
else if(boardTiles[row][col].selected() && boardTiles[row][col].circle()){
boardTileMark[row][col] = 'o';
}
}
}
}
如果有什麼是令人困惑的請告訴,我會更好地描述它。謝謝你的時間:)
PS:我試圖讓這個遊戲儘可能的堅實,所以我可以用它來做另一個項目。所以保持遊戲本身和同班同學的勝利支票不是我打算做的。
好吧,我會記住可能下一篇文章:)非常感謝你的幫助,並感謝你對新人很容易:) – Talabo
@塔拉博沒問題,如果解決了你的問題,你可以點擊左側的標記接受我的回答。 – ctomek