-2

Hello I'm new to Android Programming i need some help in Tic tac toe Game I make very simple Application that work only with Button here is The Code please have a look

XML

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn1"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="76dp"
    android:layout_alignRight="@+id/buttonMainActivitybtn4"
    android:layout_alignEnd="@+id/buttonMainActivitybtn4"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn2"
    android:layout_above="@+id/buttonMainActivitybtn4"
    android:layout_centerHorizontal="true"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn3"
    android:layout_alignTop="@+id/buttonMainActivitybtn2"
    android:layout_toRightOf="@+id/buttonMainActivitybtn2"
    android:layout_toEndOf="@+id/buttonMainActivitybtn2"
    android:layout_marginLeft="45dp"
    android:layout_marginStart="45dp"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn4"
    android:layout_marginTop="41dp"
    android:layout_below="@+id/buttonMainActivitybtn1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn5"
    android:layout_above="@+id/buttonMainActivitybtn7"
    android:layout_toLeftOf="@+id/buttonMainActivitybtn3"
    android:layout_toStartOf="@+id/buttonMainActivitybtn3"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn6"
    android:layout_alignTop="@+id/buttonMainActivitybtn5"
    android:layout_alignLeft="@+id/buttonMainActivitybtn3"
    android:layout_alignStart="@+id/buttonMainActivitybtn3"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn7"
    android:layout_marginTop="39dp"
    android:layout_below="@+id/buttonMainActivitybtn4"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn8"
    android:layout_alignBaseline="@+id/buttonMainActivitybtn7"
    android:layout_alignBottom="@+id/buttonMainActivitybtn7"
    android:layout_alignLeft="@+id/buttonMainActivitybtn5"
    android:layout_alignStart="@+id/buttonMainActivitybtn5"
    android:background="#09851a"
    android:textColor="#ffffff" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonMainActivitybtn9"
    android:layout_alignTop="@+id/buttonMainActivitybtn8"
    android:layout_alignLeft="@+id/buttonMainActivitybtn6"
    android:layout_alignStart="@+id/buttonMainActivitybtn6"
    android:background="#09851a"
    android:textColor="#ffffff" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Tic Tac Toe Game Day 3"
    android:id="@+id/textViewMainActivityTitle"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

Right now i m just applying One Condition i know it is very Dump Programing But i just want to work with button can any one guide me with this :) thankyou

package com.example.awais_pc.tictactoe;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;
    Boolean p1=true, p2=true;
    String player1= "X";
    String player2 = "O";

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

        btn1 = (Button) findViewById(R.id.buttonMainActivitybtn1);
        btn2 = (Button) findViewById(R.id.buttonMainActivitybtn2);
        btn3 = (Button) findViewById(R.id.buttonMainActivitybtn3);
        btn4 = (Button) findViewById(R.id.buttonMainActivitybtn4);
        btn5 = (Button) findViewById(R.id.buttonMainActivitybtn5);
        btn6 = (Button) findViewById(R.id.buttonMainActivitybtn6);
        btn7 = (Button) findViewById(R.id.buttonMainActivitybtn7);
        btn8 = (Button) findViewById(R.id.buttonMainActivitybtn8);
        btn9 = (Button) findViewById(R.id.buttonMainActivitybtn9);

        final String b1 = (String) btn1.getText();
        final String b2 = (String) btn2.getText();
        final String b3 = (String) btn3.getText();
        final String b4 = (String) btn4.getText();
        final String b5 = (String) btn5.getText();
        final String b6 = (String) btn6.getText();
        final String b7 = (String) btn7.getText();
        final String b8 = (String) btn8.getText();
        final String b9 = (String) btn9.getText();

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(b1.trim().isEmpty()){
                   if(p1 == true){
                       btn1.setText(player1);
                       p1 = false;
                       p2 = true;
                       btn1.setEnabled(false);

                   }
                   else if(p2 == true){
                       btn1.setText(player2);
                       p1 = true;
                       p2 = false;
                       btn1.setEnabled(false);
                   }

                }
            }
        }); // End Button One

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b2.trim().isEmpty()){
                    if(p1 == true){
                        btn2.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn2.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn2.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn2.setEnabled(false);
                    }
                }
            }
        }); // end button two
        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b3.trim().isEmpty()){
                    if(p1 == true){
                        btn3.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn3.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn3.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn3.setEnabled(false);
                    }
                }
            }
        }); // end button Three
        btn4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b4.trim().isEmpty()){
                    if(p1 == true){
                        btn4.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn4.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn4.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn4.setEnabled(false);
                    }
                }
            }
        }); // end button Four
        btn5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String b5 = btn5.getText().toString();
                if(b5.trim().isEmpty()){
                    if(p1 == true){
                        btn5.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn5.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn5.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn5.setEnabled(false);
                    }
                }
            }
        }); // end button Five
        btn6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b6.trim().isEmpty()){
                    if(p1 == true){
                        btn6.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn6.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn6.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn6.setEnabled(false);
                    }
                }
            }
        }); // end button Six
        btn7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    if(b7.trim().isEmpty()){
                    if(p1 == true){
                        btn7.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn7.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn7.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn7.setEnabled(false);
                    }
                }
            }
        }); // end button Seven
        btn8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b8.trim().isEmpty()){
                    if(p1 == true){
                        btn8.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn8.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn8.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn8.setEnabled(false);
                    }
                }
            }
        }); // end button Eight

        btn9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(b9.trim().isEmpty()){
                    if(p1 == true){
                        btn9.setText(player1);
                        p1 = false;
                        p2 = true;
                        btn9.setEnabled(false);
                    }
                    else if(p2 == true){
                        btn9.setText(player2);
                        p1 = true;
                        p2 = false;
                        btn9.setEnabled(false);
                    }
                }
            }
        }); // end button Nine
// WInning Condition But it is not working please look

        if(b1.equalsIgnoreCase("X")&&
                b2.equalsIgnoreCase("X")&&
                b3.equalsIgnoreCase("X")){
            Toast.makeText(this,"Player One Win The Game",Toast.LENGTH_SHORT);

        }

    }//end on create


}
Alex
  • 45
  • 1
  • 7

1 Answers1

0

You declared your Strings as final and you set them in the onCreate() but they have no text specified until you click them. So you aren't comparing anything. Instead assign the corresponding text in your onClickListener() after you set the button text.

btn1.setText(player1);
b1 = btn1.getText().toString();
Pztar
  • 4,274
  • 6
  • 33
  • 39
  • So what should i do ? i didnt declare as final but android stutio said to me to declare like this :| – Alex Aug 18 '16 at 21:43
  • You see how you declared your `player` variables outside of the `onCreate()` scope? Do the same for your Strings, then you won't have to declare them as final as they'll be global variables. Then do what I posted. – Pztar Aug 18 '16 at 21:48