package com.trifulcas.cartas; public abstract class Carta { private String palo; private int numero; public abstract int getValor(); /** * @return the palo */ public String getPalo() { return palo; } /** * @param palo the palo to set */ public void setPalo(String palo) { this.palo = palo; } /** * @return the numero */ public int getNumero() { return numero; } /** * @param numero the numero to set */ public void setNumero(int numero) { this.numero = numero; } public String toString() { return palo+" | "+numero; } }
package com.trifulcas.cartas; public class Espanyola extends Carta { @Override public int getValor() { int res = getNumero(); if (res == 11 || res == 12) { res = 10; } return res; } }
package com.trifulcas.cartas; public class Francesa extends Carta { @Override public int getValor() { return getNumero(); } public void quienSoy() { System.out.println("Carta de la baraja Francesa"); } }
package com.trifulcas.cartas; import java.util.ArrayList; import java.util.List; public class Baraja implements JuegoAzar { private List<Carta> cartas; public Baraja() { cartas = new ArrayList<Carta>(); } public void addCarta(Carta carta) { if (carta instanceof Francesa) { Francesa temp=(Francesa)carta; temp.quienSoy(); } cartas.add(carta); } public int totalValor() { int res = 0; for (Carta carta : cartas) { res += carta.getValor(); } return res; } public String toString() { String res = ""; for (Carta carta : cartas) { res += carta + " - "; } return res; } @Override public void mezclar() { System.out.println("Mezclando las cartas"); } }
package com.trifulcas.cartas; public interface JuegoAzar { public void mezclar(); }
package com.trifulcas.cartas; import java.util.ArrayList; import java.util.List; public class Domino implements JuegoAzar{ List<String> piezas; public Domino() { piezas = new ArrayList<String>(); } public void esDomino() { System.out.println("Dominó"); } @Override public void mezclar() { System.out.println("Mezclando las fichas"); } }
package com.trifulcas.cartas; import java.util.ArrayList; import java.util.List; public class TestCartas { public static void main(String[] args) { Carta sotabastos = new Espanyola(); sotabastos.setPalo("Bastos"); sotabastos.setNumero(10); System.out.println(sotabastos); Carta sietepicas = new Francesa(); sietepicas.setNumero(7); sietepicas.setPalo("Picas"); System.out.println(sietepicas); ((Francesa)sietepicas).quienSoy(); Francesa cuatrotreboles=new Francesa(); cuatrotreboles.setNumero(4); cuatrotreboles.setPalo("Treboles"); cuatrotreboles.quienSoy(); Carta reyespadas = new Espanyola(); reyespadas.setPalo("Espadas"); reyespadas.setNumero(12); System.out.println(reyespadas); Baraja miBaraja = new Baraja(); miBaraja.addCarta(sietepicas); miBaraja.addCarta(sotabastos); miBaraja.addCarta(reyespadas); miBaraja.addCarta(cuatrotreboles); System.out.println(miBaraja); System.out.println(miBaraja.totalValor()); JuegoAzar[] juegos= {new Baraja(),new Domino()}; for(JuegoAzar juego:juegos) { if (juego instanceof Domino) { ((Domino) juego).esDomino(); } juego.mezclar(); } } }