首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android开发:不理解2d数组的每个循环

Android开发:不理解2d数组的每个循环
EN

Stack Overflow用户
提问于 2016-01-05 05:19:25
回答 1查看 54关注 0票数 0

在创建一个简单的抽搐脚趾游戏的教程中,我看到了这段代码。完整的代码可以找到这里

这是做什么循环和如果做吗?当for循环循环时,[0],[1],[2]本身会增加吗?如果一个2d数组被转换成一维数组,它会是什么样子?它是否保持同样的地位?

e.g

代码语言:javascript
复制
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}}; 

如果转换成一维数组,会是这样吗?:

代码语言:javascript
复制
{0,1,2,3,4,5,6,7,8,0,3,6,1,4,7,2,5,8,0,4,8,2,4,6};
代码语言:javascript
复制
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 !!");
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-05 05:55:04

否,for循环将为winningState生成以下值(它在数组中迭代):

代码语言:javascript
复制
{0,1,2} -> winningState[0] = 0, winningState[1] = 1, winningState[2] = 2
{3,4,5} -> winningState[0] = 3, winningState[1] = 4, winningState[2] = 5
{6,7,8}
{0,3,6} -> winningState[0] = 0, winningState[1] = 3, winningState[2] = 6
{1,4,7}
{2,5,8}
{0,4,8}
{2,4,6}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34604651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档