Advertisement
huertz

PCv2 main

Apr 25th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.91 KB | None | 0 0
  1. package pe.edu.ulima.tictactoeapp;
  2.  
  3. import android.graphics.Color;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9.  
  10. import java.util.ArrayList;
  11.  
  12. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  13.     TextView tviMensaje;
  14.     Button[] butarray = new Button[10];
  15.     int turnoX;
  16.     int turnoO;
  17.     int sumaX;
  18.     int sumaO;
  19.     int[] idsarray;
  20.     int[] valsX = new int[5];
  21.     int[] valsO = new int[5];
  22.     int[] valoresarray = {0,
  23.                     8,1,6, // Suma = 15 en cada lado
  24.                     3,5,7,
  25.                     4,9,2};
  26.     boolean esTurnoO;
  27.     boolean gameover;
  28.     @Override
  29.     protected void onCreate(Bundle savedInstanceState) {
  30.         super.onCreate(savedInstanceState);
  31.         setContentView(R.layout.activity_main);
  32.         turnoX = 0;
  33.         turnoO = 0;
  34.         tviMensaje = (TextView) findViewById(R.id.tviMensaje);
  35.         idsarray = new int[] {R.id.tviMensaje,R.id.But1,R.id.But2,R.id.But3,R.id.But4,
  36.                                 R.id.But5,R.id.But6,R.id.But7,R.id.But8,R.id.But9};
  37.         esTurnoO = true;
  38.         gameover = false;
  39.         if(esTurnoO) {
  40.             tviMensaje.setText("Le toca al jugador O..");
  41.         }else{
  42.             tviMensaje.setText("Le toca al jugador X..");
  43.         }
  44.         tviMensaje.setOnClickListener(this);
  45.         for(int i = 1; i <= 9; i++) {
  46.             butarray[i] = (Button) findViewById(idsarray[i]);
  47.             butarray[i].setOnClickListener(this);
  48.         }
  49.  
  50.     }
  51.  
  52.     @Override
  53.     public void onClick(View view) {
  54.         if(view.getId() == idsarray[0]){
  55.             super.recreate();
  56.         }
  57.         if(!gameover){
  58.             for(int i = 1; i <= 9; i++){
  59.                 if(view.getId() == idsarray[i]){
  60.                     marcar(butarray[i],i);
  61.                 }
  62.             }
  63.         }
  64.     }
  65.  
  66.     public void marcar(Button boton, int pos){
  67.         if (boton.getText().equals("")){ // Hacer algo si el boton no tiene texto
  68.             if (esTurnoO) {
  69.                 valsO[turnoO] = valoresarray[pos]; // Agrega un valor al array cada que se presiona el boton
  70.                 turnoO++;
  71.                 boton.setText("O");
  72.                 if(turnoO >= 3) verificarGanador();
  73.                 if(!gameover){ // Si no hay victoria, se continua
  74.                     tviMensaje.setText("Le toca al jugador X..");
  75.                     esTurnoO = false;
  76.                 }
  77.             } else {
  78.                 valsX[turnoX] = valoresarray[pos]; // Agrega un valor al array cada que se presiona el boton
  79.                 turnoX++;
  80.                 boton.setText("X");
  81.                 if(turnoX >= 3) verificarGanador();
  82.                 if(!gameover){ // Si no hay victoria, se continua
  83.                     tviMensaje.setText("Le toca al jugador O..");
  84.                     esTurnoO = true;
  85.                 }
  86.  
  87.             }
  88.         }
  89.     }
  90.     public void verificarGanador(){
  91.         int sumaij;
  92.         if(esTurnoO){
  93.             sumaO = 0; // Limpiamos sumaO para cada verificacion
  94.             for(int i = 0; i < turnoO; i++){
  95.                 sumaO += valsO[i]; // obtenemos la suma
  96.             }
  97.             if(turnoO == 3 && sumaO == 15){ // Si la suma es 15, O gana en su 3er turno
  98.                 tviMensaje.setText("El jugador O ganó!");
  99.                 pintar();
  100.                 gameover = true;
  101.             }else if(turnoO == 4){
  102.                 for(int i = 0; i < turnoO; i++){
  103.                     if(sumaO - valsO[i] == 15){ // Si la suma de 3 numeros de los 4 dentro del array es 15, O gana en el 4to turno
  104.                         tviMensaje.setText("El jugador O ganó!");
  105.                         valsO[i] = 0;
  106.                         pintar();
  107.                         gameover = true;
  108.                     }
  109.                 }
  110.             }else if(turnoO == 5){
  111.                 for(int i = 0; i < turnoO; i++){
  112.                     for(int j = i + 1; j < turnoO; j++){
  113.                         sumaij = valsO[i] + valsO[j];
  114.                         if(sumaO - sumaij == 15){
  115.                             tviMensaje.setText("El jugador O ganó!");
  116.                             valsO[i] = 0;
  117.                             valsO[j] = 0;
  118.                             pintar();
  119.                             gameover = true;
  120.                         }else{
  121.                             tviMensaje.setText("Hubo un empate!");
  122.                             gameover = true;
  123.                         }
  124.                     }
  125.                 }
  126.             }
  127.         }else{
  128.             sumaX = 0; // Limpiamos sumaX para cada verificacion
  129.             for(int i = 0; i < turnoX; i++){
  130.                 sumaX += valsX[i]; // obtenemos la suma
  131.             }
  132.             if(turnoX == 3 && sumaX == 15){ // Si la suma es 15, O gana en su 3er turno
  133.                 tviMensaje.setText("El jugador X ganó!");
  134.                 pintar();
  135.                 gameover = true;
  136.             }else if(turnoX == 4){
  137.                 for(int i = 0; i < turnoX; i++){
  138.                     if(sumaX - valsX[i] == 15){ // Si la suma de 3 numeros de los 4 dentro del array es 15, X gana en el 4to turno
  139.                         tviMensaje.setText("El jugador X ganó!");
  140.                         valsX[i] = 0;
  141.                         pintar();
  142.                         gameover = true;
  143.                     }
  144.                 }
  145.             }else if(turnoX == 5){
  146.                 for(int i = 0; i < turnoX; i++){
  147.                     for(int j = i + 1; j < turnoX; j++){
  148.                         sumaij = valsX[i] + valsX[j];
  149.                         if(sumaO - sumaij == 15){
  150.                             tviMensaje.setText("El jugador O ganó!");
  151.                             valsX[i] = 0;
  152.                             valsX[j] = 0;
  153.                             pintar();
  154.                             gameover = true;
  155.                         }else{
  156.                             tviMensaje.setText("Hubo un empate!");
  157.                             gameover = true;
  158.                         }
  159.                     }
  160.                 }
  161.             }
  162.         }
  163.     }
  164.     public void pintar(){
  165.         if(esTurnoO) {
  166.             for(int i = 0; i < turnoO; i++) {
  167.                 if(valsO[i] != 0){
  168.                     for(int j = 1; j <= 9; j++){
  169.                         if(valsO[i] == valoresarray[j]){
  170.                             butarray[j].setBackgroundColor(Color.parseColor("#FF3232"));
  171.                         }
  172.                     }
  173.                 }
  174.             }
  175.         }else{
  176.             for(int i = 0; i < turnoX; i++){
  177.                 if(valsX[i] != 0){
  178.                     for(int j = 1; j <= 9; j++){
  179.                         if(valsX[i] == valoresarray[j]){
  180.                             butarray[j].setBackgroundColor(Color.parseColor("#3232FF"));
  181.                         }
  182.                     }
  183.                 }
  184.             }
  185.         }
  186.     }
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement