【发布时间】:2016-04-08 20:42:08
【问题描述】:
我在创建一个简单的井字游戏的教程中遇到了这段代码。完整代码可见here
这个 for 循环和 if 有什么作用?当 for 循环循环时,[0],[1],[2] 是否会自增?如果将 2d 数组转换为 1d 数组,它会是什么样子?是否保持相同的位置?
例如
int[][] winningStates = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
如果转换成一维数组会是这样吗?:
{0,1,2,3,4,5,6,7,8,0,3,6,1,4,7,2,5,8,0,4,8,2,4,6};
int[] gameState = {2,2,2,2,2,2,2,2,2};
int[][] winningStates = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
boolean gameIsActive = true;
for(int[] winningState : winningStates){
if(gameState[winningState[0]] == gameState[winningState[1]] &&
gameState[winningState[1]] == gameState[winningState[2]] &&
gameState[winningState[0]] != 2){
gameIsActive = false;
String winner = "Black";
if(gameState[winningState[0]] == 0){
winner = "Red";
}
//someone has won!
playAgainMessage again = new playAgainMessage();
again.playAgainMethod(winner + " has Won !!");
}
【问题讨论】:
-
太棒了!但是,问题是什么?
-
问题在代码注释中。
-
很抱歉造成混乱,已被编辑。
标签: java android arrays if-statement for-loop