当我尝试使用“再次播放”按钮重置游戏时,我的游戏力关闭

rqqzpn5f  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(165)

正如标题所说。我正在上安卓工作室的课程,我在关注这家伙教给我的一切,但当我按下PlayArea按钮时,它就关闭了应用程序。任何帮助都将是惊人的。

public class MainActivity extends AppCompatActivity {

int activePlayer = 0;

int[] gameState = {2,2,2,2,2,2,2,2,2};

int[][] winningNumbers = {{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 gameActive = true;

public void dropIn(View view) {

    ImageView counter = (ImageView) view;

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

    if (gameState[counterTap] == 2 && gameActive) {

        gameState[counterTap] = activePlayer;

        counter.setTranslationY(-1500);

        if (activePlayer == 0) {

            counter.setImageResource(R.drawable.o5);

            activePlayer = 1;

        } else {

            counter.setImageResource(R.drawable.x);

            activePlayer = 0;

        }

        counter.animate().translationYBy(1500).rotation(720).setDuration(1000);
    }

    for (int[] winningNumber : winningNumbers){

        if (gameState[winningNumber[0]] == gameState[winningNumber[1]] && gameState[winningNumber[1]] == gameState[winningNumber[2]] && gameState[winningNumber[2]] !=2){

            gameActive = false;

            Button button = (Button)findViewById(R.id.button);

            button.setVisibility(View.VISIBLE);

            TextView winnerText = (TextView)findViewById(R.id.textView);

            winnerText.setVisibility(View.VISIBLE);

            String message;

            if (activePlayer == 0){

                winnerText.setText("X WINS!");

            } if (activePlayer == 1){

                winnerText.setText("O WINS!");

            }

        }

    }

}

public void playAgain(View view){

    Button button = (Button)findViewById(R.id.button);

    button.setVisibility(View.INVISIBLE);

    TextView winnerText = (TextView)findViewById(R.id.textView);

    winnerText.setVisibility(View.INVISIBLE);

    GridLayout gridView = (GridLayout)findViewById(R.id.boardView);

    for(int i = 0; i < gridView.getChildCount(); i++) {

        ImageView counter = (ImageView) gridView.getChildAt(i);

        counter.setImageDrawable(null);

    }

    for (int i = 0 ; i<gameState.length ; i++){

            gameState[i] = 2;
        }

    gameActive = true;

    activePlayer = 0;

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

}
我不确定我做错了什么,因为我经历过,并确保我所有的代码都符合我所学到的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题