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."); }
@Override public String toString() { String strBaralho = new String(); for (Carta c : baralho) { strBaralho += c.toString() + "\n"; } return strBaralho; }
private boolean asEnLaMano() { for (Carta carta : jugada) { if (carta.getValor() == 1) { return true; } } return false; }
// 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; } }
// 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; } }
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; }
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); } }
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; }
@Override public int sumarEnvido(Carta unaCarta) { return unaCarta.devolverEnvido(this); }
@Override public Carta jugarContra(Carta carta) { return carta.jugarContra(this); }
public Carta vs(Carta contra) { return contra.vs(this); }
/** * 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; }
/** * 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; }
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) {} }); }
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)); } }