XP : ClasseJogada

XP » XP » WebHome » TrabalhosFinais » JogoGeneral » ClasseJogada


package JogoGeneral;


public class Jogada {

   public Tipo jogada;

   private int[] facesSorteadas;

   private int pontos;

   public static enum Tipo {

      NORMAL, FULA, QUADRA, SEGUIDA, QUINA

   }

   public Jogada(int[] dados) {

      facesSorteadas = dados;

   }

   public boolean jogadaEscolhida(Tipo tipo, int qualDupla) {

      boolean resposta = false;
      
      switch (tipo) {

      case NORMAL:

         assert qualDupla>=1&&qualDupla<=6 : "Valor para a dupla deve ser um número que pertença a um dado de seis faces";

         resposta = jogadaNormal(qualDupla);

         break;

      case FULA:

         resposta = fula();

         break;

      case QUADRA:

         resposta = quadra();

         break;

      case SEGUIDA:

         resposta = seguida();

         break;

      case QUINA:

         resposta = quina();

         break;

      }

      return resposta;

   }

   public boolean seguida() {

      boolean tem2, tem3, tem4, tem5, resposta;

      tem2 = tem3 = tem4 = tem5 = resposta = false;

      int oOutroNum = 0;

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

         if (facesSorteadas[i] == 2) {

            tem2 = true;

         }

         if (facesSorteadas[i] == 3) {

            tem3 = true;

         }

         if (facesSorteadas[i] == 4) {

            tem4 = true;

         }

         if (facesSorteadas[i] == 5) {

            tem5 = true;

         }

         if (facesSorteadas[i] == 1

               || facesSorteadas[i] == 6) {

            oOutroNum = facesSorteadas[i];

         }

      }

      if (tem2 && tem3 && tem4 && tem5 && oOutroNum != 0) {

         pontos = 35;

         resposta = true;

      } else {

         pontos = 0;

      }

      return resposta;

   }


   public boolean quina() {

      boolean resposta = false;

      if ((facesSorteadas[0] == facesSorteadas[1])

            && (facesSorteadas[1] == facesSorteadas[2])

            && (facesSorteadas[2] == facesSorteadas[3])

            && (facesSorteadas[3] == facesSorteadas[4])) {

         pontos = 50;

         resposta = true;

      }

      return resposta;

   }

   public boolean quadra() {

      boolean resposta = false;

      int[] aux = { 0, 0, 0, 0, 0, 0 };

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

         aux[facesSorteadas[i]]++;

      }

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

         if (aux[i] >= 4) {

            pontos = 30;

            resposta = true;

         }

      }

      if (!resposta) {

         pontos = 0;

      }

      return resposta;

   }

   private boolean fula() {

      boolean resposta = false;

      boolean temTres, temDois;

      temDois = temTres = false;

      int[] aux = { 0, 0, 0, 0, 0, 0 };

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

         aux[facesSorteadas[i]]++;

      }

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

         if (aux[i] ==3) {

            temTres=true;
         }

         if(aux[i]==2){

            temDois=true;
         }

      }

      if (temDois&&temTres) {

         pontos = 25;

         resposta = true;

      }else

         pontos = 0;

      
      return resposta;

   }

   private boolean jogadaNormal(int qual) {

      boolean resposta = true;

      int quantQual = 0;

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

         if (facesSorteadas[i] == qual) {

            quantQual++;

         }

      }

      pontos = qual * quantQual;

      if (quantQual == 0)

         resposta = false;

      return resposta;

   }


   public int getPontos() {      

      return pontos;

   }

}

E D U G R A F - Laboratório de Software Educacional - UFSC - CTC - INE
Campus Universitário - Trindade, Florianópolis, SC, Brasil 88040-090
Fone: +55 48 331 9735 / Fax: +55 48 331-9770