2017-03-04 8 views
0

**こんにちは、私はアプリと小さなゲームをアンドロイドで構築する方法を学ぼうとしています。誰かがこのケースで拡張forループがどのように機能するのか、拡張forループのif文が勝者をチェックする方法を説明できますか?コードは、赤と黄色の円でチックタックのつま先のゲームからです。申し訳ありませんが、質問が既に尋ねられた場合。 **アンドロイドJavaクラスのループ2d配列用に改良された

// 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 
     .... 

答えて

0

拡張ループは、通常の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" はその要素の上に2次元配列そうであれば反復処理であるあなたのケースでは

for (int myValue : myArray) { 
    System.out.println(myValue); 
} 

として変換することができますあなたは各反復で一次元の配列( "winningPosition")を取得し、残りはゲームロジックです。

ankit

関連する問題