package com.trifulcas.cartas;
public abstract class Carta {
private String palo;
private int numero;
public Carta(String palo, int numero) {
this.palo = palo;
this.numero = numero;
}
/**
* @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 abstract int getValor();
@Override
public String toString() {
return numero+" de "+palo;
}
}
package com.trifulcas.cartas;
public class Espanyola extends Carta {
public Espanyola(String palo, int numero) {
super(palo, numero);
}
@Override
public int getValor() {
if (getNumero()>=10) {
return 10;
}
return getNumero();
}
}
package com.trifulcas.cartas;
public class Francesa extends Carta {
public Francesa(String palo, int numero) {
super(palo, numero);
// TODO Auto-generated constructor stub
}
@Override
public int getValor() {
// TODO Auto-generated method stub
return getNumero();
}
}
package com.trifulcas.cartas;
import java.util.ArrayList;
import java.util.List;
public class Baraja {
List<Carta> cartas;
public Baraja() {
cartas=new ArrayList<>();
}
public void addCarta(Carta carta) {
cartas.add(carta);
}
public int totalValor() {
int total=0;
for(Carta carta:cartas) {
total+=carta.getValor();
}
return total;
}
}
package com.trifulcas.cartas;
public class TestCartas {
public static void main(String[] args) {
Carta e=new Francesa("Diamantes",7);
System.out.println(e);
Carta f=new Espanyola("Bastos",12);
System.out.println(f);
Baraja b=new Baraja();
b.addCarta(f);
b.addCarta(e);
System.out.println(b.totalValor());
}
}