Skip to content

haripriya37/Tic-Tac-Toe_Android-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Tic-Tac-Toe_Android-Game

//This is a basic game tic-tac-toe implemented using Java and build using Android Studio //MainAcivity.java file code is given below: package com.rharipriya.tictactoe;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle; import android.view.Menu;

import android.view.MenuItem; import android.view.View;

import android.widget.GridLayout; import android.widget.ImageView;

import android.widget.LinearLayout; import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

// 0 = cross, 1 = dot

int activePlayer = 0;

boolean gameIsActive = true;

// 2 means unplayed

int[] gameState = {2, 2, 2, 2, 2, 2, 2, 2, 2}; //intially assume draw

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}}; //declaring winning positions

public void dropIn(View view) {

ImageView counter = (ImageView) view;

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

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

gameState[cnt] = activePlayer;

counter.setTranslationY(-1000f);

if (activePlayer == 0) {

counter.setImageResource(R.drawable.cross);

activePlayer = 1;

        } 

else {

counter.setImageResource(R.drawable.dot);

activePlayer = 0;

        }

counter.animate().translationYBy(1000f).rotation(360).setDuration(300);

for (int[] winningPosition : winningPositions) {

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

                // if someone has won stop the game

gameIsActive = false;

String winner = "Dot";

if (gameState[winningPosition[0]] == 0) {

winner = "Cross";

}

TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);

winnerMessage.setText(winner + " has won!");

LinearLayout layout = (LinearLayout)findViewById(R.id.playAgainLayout);

layout.setVisibility(View.VISIBLE);

            } 

else {

                boolean gameIsOver = true;

for (int counterState : gameState) {

if (counterState == 2) gameIsOver = false;

                }

if (gameIsOver) {

                    TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);

winnerMessage.setText("It's a draw");

LinearLayout layout = (LinearLayout)findViewById(R.id.playAgainLayout);

layout.setVisibility(View.VISIBLE);

                }

            }

        }
    }


}

public void playAgain(View view) {

    gameIsActive = true;

    LinearLayout layout = (LinearLayout)findViewById(R.id.playAgainLayout);

    layout.setVisibility(View.INVISIBLE);

    activePlayer = 0;

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

        gameState[i] = 2;

    }

    GridLayout gridLayout = (GridLayout)findViewById(R.id.gridLayout);

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

        ((ImageView) gridLayout.getChildAt(i)).setImageResource(0);

    }

}

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

}

About

This is a basic game tic-tac-toe implemented using Java and build using Android Studio

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors