Clase Carta:
package es.unex.cum.edi.PracticaFinal;
/**
* Clase abstracta que contendrá carta alemana,carta francesa y carta española
* @author Ricardo Meza Díaz
*
*/
public abstract class Carta {
//Atributos:
//Path al nombre de la imagen de la celda cuando está dada la vuelta (Nose usará para nada, pero por si se hiciera gráficamente.
protected String imagenReverso;
//Path al nombre de la imagen de la celda cuando se muestra (No se usar para nada, pero por si se hiciera gráficamente).
protected String imagenFrontal;
/*
* Indica el valor de la carta.En el atributo se define como char,pero en el getValor hay que ponerlo como float.
* Puede valer:
* ▪ Carta Española: 1,2 ,3 4, 5, 6, 7, Sota (S), Caballo (C), Rey (R)
* ▪ Carta Francesa: 1,2 ,3 4, 5, 6, 7, 8 , 9 , 10 (A), y tres figuras, que se llaman Valet(V), Dame (D) y Roi (R).
* ▪ Carta Alemana: Consiste en un mazo de 36 naipes o cartas, clasificadas en cuatropalos. La numeración es: del 6 al 10 (X), Unter (U), Dame (D), König (K) y Daus(A)
*/
protected char valor;
//Indica si la carta esta “boca-abajo” .
protected boolean oculta;
/**
* Contructor por defecto.Inicializa por defecto los valores de los atributos de esa clase.
*/
public Carta(){
imagenReverso= ""; //También se puede inicializar como, imageReverso= new String();
imagenFrontal=""; //También se puede inicializar como, imageReverso= new String();
valor= ' '; //Ojo! ' ' va con un espacio entre ellas.
oculta=false; //Es recomendable inicializarla a false siempre.
}
/**
* Constructor parametrizado.Inicializa los valores recibisos por parametros.
* @param imagenReverso Foto de la parte trasera de la carta
* @param imagenFrontal Foto de la parte delantera de la carta
* @param Valor Numero o letra de carta
* @param Oculta SI está boca-abajo o boca-arriba
*/
public Carta(String imagenReverso,String imagenFrontal,char valor,boolean oculta){
this.imagenReverso=new String(imagenReverso);
this.imagenFrontal=new String(imagenFrontal);
this.valor=valor;
this.oculta=oculta;
}
/**
* Devuelve el valor(la ubicación de la imagen) del atributo imagenReverso
* @return String con la imagen de la parte de atrás de la carta.
*/
public String getImagenReverso(){
return imagenReverso;
}
/**
* Devuelve el valor(la ubicación de la imagen) del atributo imagenFrontal
* @return String con la imagen de la parte frontal de la carta.
*/
public String getImagenFrontal(){
return imagenFrontal;
}
/**
* Devuelve el valor(el numero o letra) de la carta.Ojo! es abstract el método porque se va desarrollar este método en la clases Carta Francesa,Española y Alemana.
* Cada una tienen sus propias letras y numeros.
* @return float como la representacion numerica de la carta caracter dependiendo de si está boca-abajo o boca-arribaque será una letra o un número de la carta.
*/
public abstract float getValor();
/**
* Devuelve el valor de si la carta está boca a bajo o boca arriba.Es decir, un valor numérico asociada a la carta que será usado posteriormente.
* @return boolean que será un true o un false dependiendo de si está boca-abajo o boca-arriba.
*/
public boolean getOculta(){
return oculta;
}
/**
* Cambia el estado de la carta.
* @param oculta True boca-abajo.False boca-arriba.
*
*/
public void setOculta(boolean oculta){
this.oculta=oculta;
}
/**
* Cambia la ubicación de la imagen en el sistema operativo de la parte de atrás de la carta.
* @param imagenReverso modifica la ruta de la foto de detrás de la carta
*/
public void setImageReverso(String imagenReverso){
this.imagenReverso=imagenReverso;
}
/**
* Cambia la ubicación de la imagen en el sistema operativo de la parte de alante de la carta.
* @param imagenFrontal modifica la ruta de la foto de alante de la carta
*/
public void setImageFrontal(String imagenFrontal){
this.imagenFrontal=imagenFrontal;
}
/**
* Cambia el valor de de si esta la carta boca a bajo o boca arriba.
* @param valor de la carta
*/
public void setValor(char valor){
this.valor=valor;
}
/**
* Devuelve una cadena,mostrando los valores de los atributos deseados.
*/
@Override
public String toString(){
return "[Numero/letra de la carta: "+valor+"]";
}
/**
* Redefine el método equals de la clase Object.No olvidar poner @override encima del método.
*/
@Override
public boolean equals(Object o){
//Upcasting
Carta c=(Carta)o;
return this.imagenReverso.equals(c.imagenReverso)&&this.imagenFrontal.equals(c.imagenFrontal)&&this.valor==c.valor&&this.oculta==c.oculta;
}
}
No hay comentarios:
Publicar un comentario