这是我第一次在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