Nesta aula, tendo a lógica do Jogo da Velha implementado, definiremos quem começará o jogo sendo X e quem será Bola.

Acrescentando RadioButton

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <RadioButton
        android:id="@+id/rbX"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="X" />

    <RadioButton
        android:id="@+id/rbO"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="O" />
</RadioGroup>
package com.example.jogo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.Toast;

public class Main extends Activity {

    //CONST DE CADA BOTAO
    private final String QUADRADO = "quadrado";
    private final String BOLA = "O";
    private final String XIS = "X";

    private String lastPlay = "X";

    private View view;

    int [][] estadoFinal = new int [][]{

        {1,2,3},
        {4,5,6},
        {7,8,9},

        {1,4,7},
        {2,5,8},
        {3,6,9},

        {1,5,9},
        {3,5,7},

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setView(getLayoutInflater().inflate(R.layout.main, null));
        setContentView( getView());
    }

    public void clickquadrado(View v){

        if(!isFim()){

            if (((Button)v).getText().equals( "" )){
                if(getLastPlay().equals(XIS)){
                    ((Button)v).setText( BOLA );
                    setLastPlay(BOLA);
                }else{
                    ((Button)v).setText( XIS );
                    setLastPlay(XIS);
                }

            }else{
                Toast.makeText( getView().getContext(),"Escolha outro quadrado, esse est� ocupado!", Toast.LENGTH_LONG).show();
            }
            isFim();
        }

    }

    public Button getQuadrado(int tagNum){
        return (Button)getView().findViewWithTag("QUADRADO"+tagNum);
    }

    public void newGame(View v){

        setEnableQuadrado(true);
        setColorBlack();

        for(int i=1; i<=9; ++i){
            if(getQuadrado(i)!=null){
                getQuadrado(i).setText("");
            }
        }

        RadioButton rX = (RadioButton)getView().findViewById(R.id.rbX);
        RadioButton rO = (RadioButton)getView().findViewById(R.id.rbO);

        if(rX.isChecked()){
            setLastPlay( BOLA );
        }else{
            if(rO.isChecked()){
                setLastPlay( XIS );
            }
        }
    }

    public void setEnableQuadrado(boolean b){
        for(int i=1; i<=9; ++i){
            if(getQuadrado(i)!=null){
                getQuadrado(i).setEnabled( b );
            }
        }
    }

    public void setColorQuadrados(int btn, int colorX){
        getQuadrado(btn).setTextColor(getResources().getColor(colorX));
    }

    public void setColorBlack(){
        for(int i=0; i<=9; ++i){
            if(getQuadrado(i)!=null){
                setColorQuadrados(i,R.color.black);
            }
        }
    }

    public boolean isFim(){
        for(int x=0; x<=7; ++x){

            String s1 = getQuadrado(estadoFinal[x][0]).getText().toString();
            String s2 = getQuadrado(estadoFinal[x][1]).getText().toString();
            String s3 = getQuadrado(estadoFinal[x][2]).getText().toString();

            if ((!s1.equals(""))&&
                    (!s2.equals(""))&&
                    (!s3.equals(""))){

                if(s1.equals(s2)&& s2.equals(s3)){
                    //pinta os botoes
                    setColorQuadrados(estadoFinal[x][0],R.color.red);
                    setColorQuadrados(estadoFinal[x][1],R.color.red);
                    setColorQuadrados(estadoFinal[x][2],R.color.red);
                    Toast.makeText(getView().getContext(),"Fim do jogo!", Toast.LENGTH_LONG).show();

                    return true;
                }
            }
        }

        return false;
    }

    public String getLastPlay() {
        return lastPlay;
    }
    public void setLastPlay(String lastPlay) {
        this.lastPlay = lastPlay;
    }

    public View getView() {

        return view;
    }

    public void setView(View view) {
        this.view = view;
    }

}


Tags android, java, jogo, jogo da velha

Comentários

comments powered by Disqus