Exemplo n.º 1
0
 public static void main(String[] args) {
   Carta c1 = new Carta(8, "oros");
   Carta c2 = new Carta(11, "copas");
   System.out.println(
       "Se han echado las sig. cartas: " + c1.nombreCarta() + " y " + c2.nombreCarta());
   System.out.println("En total hay " + c1.getCartasEchadas() + " cartas echadas.");
 }
Exemplo n.º 2
0
 @Override
 public String toString() {
   String strBaralho = new String();
   for (Carta c : baralho) {
     strBaralho += c.toString() + "\n";
   }
   return strBaralho;
 }
Exemplo n.º 3
0
 private boolean asEnLaMano() {
   for (Carta carta : jugada) {
     if (carta.getValor() == 1) {
       return true;
     }
   }
   return false;
 }
Exemplo n.º 4
0
  // Marca o Desmarca las cartas que ya han sido usadas
  static void marcar(boolean[][] marcados, LinkedList<Carta> listaCartas, boolean marcar) {

    Carta carta;
    ListIterator<Carta> lista = listaCartas.listIterator();
    while (lista.hasNext()) {
      carta = lista.next();
      marcados[carta.getPalo()][posCorrecta(carta)] = marcar;
    }
  }
Exemplo n.º 5
0
  // calcula la posicion correcta de cada carta en el array de marcaje
  static int posCorrecta(Carta c) {

    int valor = c.getValor();
    if (valor == 11) {
      return cartas_por_palo - 3;
    } else if (valor == 12) {
      return cartas_por_palo - 2;
    } else if (valor == 13) {
      return cartas_por_palo - 1;
    } else {
      return c.getValor() - 1;
    }
  }
Exemplo n.º 6
0
 private Baralho[] instanciaBaralho(int quantidade, Point pontoInicial, int tipo) {
   Baralho[] listaBaralho = new Baralho[quantidade];
   String naipes[] = Carta.listaNaipes();
   for (int i = 0; i < listaBaralho.length; i++) {
     listaBaralho[i] = new Baralho();
     listaBaralho[i].definirTipo(tipo);
     if (tipo == Baralho.CRESCENTE) {
       listaBaralho[i].setNaipe(naipes[i]);
     }
     listaBaralho[i].getRaiz().setLocation(120 * i + 20 + pontoInicial.x, pontoInicial.y);
     add(listaBaralho[i].getRaiz(), 0);
   }
   return listaBaralho;
 }
Exemplo n.º 7
0
  static boolean esCompletable(boolean[][] marcados, Carta carta) {

    // Si se juega una carta a el mazoDestino, y sabemos de antemano que
    // todos los correlativos de la carta jugada ya estan en mazoDestino

    boolean OK = false;

    int valorLimite = carta.getValor();
    if (valorLimite == 1) {
      if (marcados[Carta.ESPADAS][posCorrecta(carta) + 1]
          && marcados[Carta.CORAZONES][posCorrecta(carta) + 1]
          && marcados[Carta.DIAMANTES][posCorrecta(carta) + 1]
          && marcados[Carta.TREBOLES][posCorrecta(carta) + 1]) {
        OK = false;
      } else {
        OK = true;
      }

    } else if (valorLimite == 13) {

      if (marcados[Carta.ESPADAS][posCorrecta(carta) - 1]
          && marcados[Carta.CORAZONES][posCorrecta(carta) - 1]
          && marcados[Carta.DIAMANTES][posCorrecta(carta) - 1]
          && marcados[Carta.TREBOLES][posCorrecta(carta) - 1]) {
        OK = false;
      } else {
        OK = true;
      }

    } else {

      if (marcados[Carta.ESPADAS][posCorrecta(carta) - 1]
          && marcados[Carta.ESPADAS][posCorrecta(carta) + 1]
          && marcados[Carta.CORAZONES][posCorrecta(carta) - 1]
          && marcados[Carta.CORAZONES][posCorrecta(carta) + 1]
          && marcados[Carta.DIAMANTES][posCorrecta(carta) - 1]
          && marcados[Carta.DIAMANTES][posCorrecta(carta) + 1]
          && marcados[Carta.TREBOLES][posCorrecta(carta) - 1]
          && marcados[Carta.TREBOLES][posCorrecta(carta) + 1]) {
        OK = false;
      } else {
        OK = true;
      }
    }

    return OK;
  }
  public static void main(String[] args) {
    ArrayList<Carta> a = new ArrayList<Carta>();
    boolean Esta = true;
    System.out.println("paso");

    Carta carta = new Carta();
    a.add(carta);

    String posicion = carta.getPalo();
    String cantidad = carta.getNumero();

    for (int i = 0; i < 9; i++) {
      a.add(carta = new Carta());
    }
    while (Esta) {
      for (int i = 0; i < a.size(); i++) { // recorro el arraylist
        Carta p = (Carta) a.get(i); // guardo el valor en el object p
        for (int q = i + 1;
            q < a.size();
            q++) { // recorro los object creados  para ver si se repite
          Carta p1 = (Carta) a.get(q); // guardo el valor en object p1 para compararlo con p
          if (p.getNumero().equals(p1.getNumero())
              && p.getPalo().equals(p1.getPalo())) { // condicion que se cumple
            a.remove(q); // elimino el que se repite
            a.add(q, carta = new Carta()); // creo otronuevo donde se elimino el otro obeject
          } else { // cuando no se repita mas object se sale de while
            Esta = false;
          }
        }
      }
    }
    Collections.sort(a);

    System.out.println("paso3");
    for (Carta n : a) {
      System.out.println(n);
    }
  }
Exemplo n.º 9
0
  public int obtenerTotal() {
    int acum = 0, puntos = 0;
    for (Carta carta : jugada) {
      if (carta.getValor() >= 10) {
        puntos = 10;
        acum += puntos;
      } else if (carta.getValor() == 1) {
        puntos = 11;
        acum += puntos;
        if (acum > 21) {
          puntos = 1;
          acum += puntos - 11;
        }
      } else {
        puntos = carta.getValor();
        acum += puntos;
      }
    }

    if (acum > 21 && asEnLaMano()) {
      acum = 0;
      puntos = 0;
      for (Carta carta : jugada) {
        if (carta.getValor() >= 10) {
          puntos = 10;
          acum += puntos;
        } else if (carta.getValor() == 1) {
          puntos = 1;
          acum += puntos;
        } else {
          puntos = carta.getValor();
          acum += puntos;
        }
      }
    }

    return acum;
  }
Exemplo n.º 10
0
  @Override
  public int sumarEnvido(Carta unaCarta) {

    return unaCarta.devolverEnvido(this);
  }
 @Override
 public Carta jugarContra(Carta carta) {
   return carta.jugarContra(this);
 }
Exemplo n.º 12
0
 public Carta vs(Carta contra) {
   return contra.vs(this);
 }
Exemplo n.º 13
0
 /**
  * Metodo que verifica se as duas cartas passadas como parâmetro possuem o mesmo numero
  *
  * @param carta1
  * @param carta2
  * @return
  */
 public boolean mesmoNumero(Carta carta1, Carta carta2) {
   if (carta1.getNumero().equals(carta2.getNumero())) {
     return true;
   }
   return false;
 }
Exemplo n.º 14
0
 /**
  * Metodo que verifica se as duas cartas passadas como parâmetro possuem o mesmo naipe
  *
  * @param carta1
  * @param carta2
  * @return
  */
 public boolean mesmoNaipe(Carta carta1, Carta carta2) {
   if (carta1.getnaipe().equals(carta2.getnaipe())) {
     return true;
   }
   return false;
 }
Exemplo n.º 15
0
  private void eventosCarta(final Carta carta) {
    carta.addMouseListener(
        new MouseListener() {

          @Override
          public void mouseClicked(MouseEvent e) {}

          @Override
          public void mousePressed(MouseEvent e) {
            moverParaFrente(carta);
          }

          private void moverParaFrente(Carta carta) {
            try {
              Baralho baralhoDono = procurarDono(carta);
              Carta primeiraCarta = baralhoDono.topo();
              if (carta == primeiraCarta) {
                remove(carta);
                add(carta, 0);
              }
            } catch (Baralho.PilhaVaziaException | NullPointerException ex) {

            }
          }

          @Override
          public void mouseReleased(MouseEvent e) {
            Baralho baralhoSelecionado = encontrarBaralhoProximo();
            Baralho baralhoDono = procurarDono(carta);
            moverParaFrente(carta);
            try {
              baralhoDono.desempilhar();
            } catch (Baralho.PilhaVaziaException ex) {
              // nao precisa fazer nada. Apenas segue o codigo restante.
            } catch (NullPointerException es) {
              return;
            } catch (Baralho.PilhaCrescenteRemoverExcessao ex) {
              return;
            }
            try {
              if (baralhoSelecionado == null) {
                throw new Baralho.RequisitoPilhaExcessao("deu erro");
              }
              baralhoSelecionado.empilhar(carta);

            } catch (Baralho.RequisitoPilhaExcessao ex) {
              try {
                baralhoDono.desativarRegra();
                baralhoDono.empilhar(carta);
                baralhoDono.ativarRegra();
              } catch (Baralho.RequisitoPilhaExcessao ex1) {
                Logger.getLogger(Cenario.class.getName()).log(Level.SEVERE, null, ex1);
              }
            }
          }

          private Baralho encontrarBaralhoProximo() {
            Baralho[] baralhosdaVez = baralhosPilha;
            Baralho baralhoSelecionado = procurarNoConjunto(baralhosdaVez);
            if (baralhoSelecionado == null) {
              baralhosdaVez = baralhosAuxiliares;
              baralhoSelecionado = procurarNoConjunto(baralhosdaVez);
              if (baralhoSelecionado == null) {
                baralhosdaVez = baralhosTerminais;
                baralhoSelecionado = procurarNoConjunto(baralhosdaVez);
              }
            }
            return baralhoSelecionado;
          }

          private Baralho procurarNoConjunto(Baralho[] baralhosdaVez) {
            Baralho baralhoSelecionado = null;
            int valMaior = 0;
            for (Baralho baralho : baralhosdaVez) {
              Carta raiz;
              try {
                raiz = baralho.topo();
              } catch (Baralho.PilhaVaziaException ex) {
                raiz = baralho.getRaiz();
              }
              if (carta == raiz) {
                continue;
              }
              int intersecao = carta.qtdPixelsIntersecao(raiz);
              if (intersecao > valMaior) {
                valMaior = intersecao;
                baralhoSelecionado = baralho;
              }
            }
            return baralhoSelecionado;
          }

          @Override
          public void mouseEntered(MouseEvent e) {}

          @Override
          public void mouseExited(MouseEvent e) {}
        });
  }
Exemplo n.º 16
0
  public static void main(String[] args) {

    Vector<Carta> v = new Vector<Carta>();
    Vector<Carta> b = new Vector<Carta>();
    Map<String, Integer> m = new HashMap<String, Integer>();

    int suma = 0;
    int opcion = 0;
    int sumaquina = 0;
    int veces = 3;
    boolean esGanador = false;

    m.put("as", 11);
    m.put("dos", 0);
    m.put("tres", 10);
    m.put("cuatro", 0);
    m.put("seis", 0);
    m.put("cinco", 0);
    m.put("sota", 2);
    m.put("caballo", 3);
    m.put("rey", 4);
    m.put("siete", 0);

    System.out.println(
        "\n¿Quieres jugar contra DefecaMachine?\nDebes sacar una tirada mayor que la maquina.");

    System.out.println("\n1-Jugar\t\t2-Salir\n");
    System.out.print("Eliga. Su dinero esta en juego. OPCION: ");
    opcion = Integer.parseInt(System.console().readLine());

    if (opcion == 1) {

      do {

        System.out.println("\n___Tu Jugada___");
        v.addElement(new Carta());
        v.addElement(new Carta());
        v.addElement(new Carta());
        v.addElement(new Carta());
        v.addElement(new Carta());
        for (Carta c : v) System.out.println(c);

        for (Carta c : v) suma += m.get(c.getNumero());

        System.out.println("\n___Jugada Defecamachine___");
        b.addElement(new Carta());
        b.addElement(new Carta());
        b.addElement(new Carta());
        b.addElement(new Carta());
        b.addElement(new Carta());
        for (Carta k : b) System.out.println(k);

        for (Carta k : b) sumaquina += m.get(k.getNumero());

        System.out.println("______________________________________________________");
        System.out.println("Tienes " + suma + " puntos.");
        System.out.println("Defecamachine ha sacado " + sumaquina + " puntos.");
        System.out.println("______________________________________________________");

        if (suma == sumaquina) {
          System.out.println("\n\nDESASTROSO EMPATE...");
          esGanador = false;
          veces--;
          v.removeAll(v);
          b.removeAll(b);
          if (veces > 0) {
            System.out.print("\n1-Seguir.\t\t\t0-Salir. \n");
            System.out.print("\t\tOPCION:");
            opcion = Integer.parseInt(System.console().readLine());
          }
          if (veces == 0) {
            System.out.print("Se acabaron las oportunidades.");
          }
        }
        if (suma < sumaquina) {
          System.out.println("\n\n\nHas perdido contra Defecamachine...");
          esGanador = false;
          veces--;
          v.removeAll(v);
          b.removeAll(b);
          if (veces > 0) {
            System.out.print("\n1-Seguir.\t\t\t0-Salir. \n");
            System.out.print("\t\tOPCION:");
            opcion = Integer.parseInt(System.console().readLine());
          }
          if (veces == 0) {
            System.out.print("Se acabaron las oportunidades.");
          }
        }
        if (suma > sumaquina) {
          System.out.println("¡¡Ganaste a Defecamachine!!");
          esGanador = true;
        }

      } while ((!esGanador) && (veces > 0) && (opcion == 1));
    }
  }