Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android java类中增强的for循环2d数组_Java_Android - Fatal编程技术网

android java类中增强的for循环2d数组

android java类中增强的for循环2d数组,java,android,Java,Android,**大家好,我正在尝试学习如何在android中构建应用程序和小游戏。有人能解释一下增强for循环在这种情况下是如何工作的,以及增强for循环中的if语句是如何检查获胜者的吗?代码来自一个红色和黄色圆圈的井字游戏。抱歉,如果问题已经被问到。** // 0= yellow player; 1 = red player; int activePlayer=0; boolean gameIsActive = true; //2 means unplayed int[] gameState = {

**大家好,我正在尝试学习如何在android中构建应用程序和小游戏。有人能解释一下增强for循环在这种情况下是如何工作的,以及增强for循环中的if语句是如何检查获胜者的吗?代码来自一个红色和黄色圆圈的井字游戏。抱歉,如果问题已经被问到。**

// 0= yellow player; 1 = red player;

int activePlayer=0;

boolean gameIsActive = true;

//2 means unplayed
int[] gameState = {2,2,2,2,2,2,2,2,2};

int[][] winningPositions= {{0,1,2}, {3,4,5}, {6,7,8}, {0,3,6}, {1,4,7},{2,6,8}, {0,4,8}, {2,4,6}};

public void dropIn(View view) {
    ImageView counter = (ImageView) view;

    int tappedCounter = Integer.parseInt(counter.getTag().toString());

    if (gameState[tappedCounter] == 2 && gameIsActive) {

        gameState[tappedCounter]=activePlayer;

        counter.setTranslationY(-1000f);

        if (activePlayer == 0) {
            counter.setImageResource(R.drawable.yellow);
            activePlayer = 1;
        } else {
            counter.setImageResource(R.drawable.red);
            activePlayer = 0;
        }
        counter.animate().translationYBy(1000f).setDuration(300);

     for (int[] winningPositon : winningPositions){
         if (gameState[winningPositon[0]]== gameState[winningPositon[1]]&& gameState[winningPositon[1]]==gameState[winningPositon[2]]
                 && gameState[winningPositon[0]]!=2){

        //someone has won
        ....

增强循环只不过是普通for循环的一种更简单的for。 下为循环

for (int i = 0; i < myArray.length; i++) {
    System.out.println(myArray[i]);
}
就你而言

for (int[] winningPositon : winningPositions){
         if (gameState[winningPositon[0]]== gameState[winningPositon[1]]&& gameState[winningPositon[1]]==gameState[winningPositon[2]]
                 && gameState[winningPositon[0]]!=2){
“winningPositon”是一个2D数组,因此如果在其元素上迭代,每次迭代都会得到一个一维数组(“winningPosition”),其余就是游戏逻辑

安基特

for (int[] winningPositon : winningPositions){
         if (gameState[winningPositon[0]]== gameState[winningPositon[1]]&& gameState[winningPositon[1]]==gameState[winningPositon[2]]
                 && gameState[winningPositon[0]]!=2){