Saturday, March 21, 2020

[ANDROID]TicTacToe - MainActivity.java

Leave a Comment
package com.example.cw.tictactoe;

import android.media.Image;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {

    //Yellow : 0    //Red    : 1    //Empty  : -1
    int activePlayer = 0;
    int[] blocks = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
    int[][] winningPositions = {{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 drop(View view)
    {
        ImageView currentImageView = (ImageView)view;
        int matrixIndexClicked = Integer.parseInt(view.getTag().toString());

        if(blocks[matrixIndexClicked]==-1 && gameActive)
        {
            currentImageView.setTranslationY(-1000);
            if (activePlayer == 0) {
                currentImageView.setImageResource(R.drawable.yellow);
                blocks[matrixIndexClicked]=0;
                activePlayer = 1;
            } else {
                currentImageView.setImageResource(R.drawable.red);
                blocks[matrixIndexClicked]=1;
                activePlayer = 0;
            }
            currentImageView.animate().translationYBy(1000).setDuration(500);

            String winner = "";
            for(int[] win:winningPositions)
            {
                if(blocks[win[0]]==blocks[win[1]] && blocks[win[1]]==blocks[win[2]] && blocks[win[0]]!=-1)
                {
                    if (activePlayer==0)
                    {
                        winner = "Red";
                    }
                    else                    {
                        winner = "Yellow";
                    }
                    gameActive=false;
                    break;
                }
            }
            if(gameActive)
            {
                for(int i:blocks) {
                    if (i == -1) {
                        gameActive = true;
                        break;
                    } else {
                        gameActive = false;
                    }
                }
            }
            if(!gameActive)
            {
                TextView txt = (TextView)findViewById(R.id.textView);
                Button bt = (Button)findViewById(R.id.button);
                if(winner.length()<1)txt.setText("Game Draws");
                else txt.setText(winner+" wins!");

                bt.setVisibility(View.VISIBLE);
                txt.setVisibility(View.VISIBLE);
            }
        }
    }

    public void playAgain(View view)
    {
        TextView txt = (TextView)findViewById(R.id.textView);
        Button bt = (Button)findViewById(R.id.button);
        bt.setVisibility(View.INVISIBLE);
        txt.setVisibility(View.INVISIBLE);

        activePlayer = 0;
        for(int i=0;i<blocks.length;i++)
        {
            blocks[i]=-1;
        }
        gameActive = true;

        GridLayout myGridView = (GridLayout)findViewById(R.id.gridLayout);
        for(int i=0; i<myGridView.getChildCount(); i++) {
            ImageView child = (ImageView)myGridView.getChildAt(i);
            child.setImageDrawable(null);
        }
    }

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment