zanardi84
29-03-2012, 16:31
Mi sto cimentando con il java, ma non capisco come usare il tipo enumerativo.
In particolare ho trovato un esercizio che dice di creare un tipo enum le cui costanti rappresentano i semi di un mazzo di carte, un secondo enumerativo le cui costanti rappresentano i valori delle carte. Devo poi creare una classe che rappresenta una carta da gioco e infine un mazzo di carte con un array.
Ho scritto questo codice, per definire i due tipi enumerativi. Il problema è che non so come rappresentare la carta da gioco.
public enum Seme
{
// COSTANTI
QUADRI("Quadri"), CUORI("Cuori"), FIORI("Fiori"), PICCHE("Picche");
// Variabili di istanza
private String nome;
// COSTRUTTORE (Dichiarato privato perchè può essere usato solo ed esclusivamente dalla JVM)
private Seme(String nome)
{
this.nome = nome;
}
// Ridefinisco il metodo toString
public String toString()
{
return nome;
}
}
public enum ValoriCarte
{
// COSTANTI ENUMERATIVE
DUE("Due", 2), TRE("Tre", 3), QUATTRO("Quattro", 4), CINQUE("Cinque", 5),
SEI("Sei", 6), SETTE("Sette", 7), OTTO("Otto", 8), NOVE("Nove", 9), DIECI("Dieci", 10),
FANTE("Fante", 11), DONNA("Donna", 12), RE("Re", 13), ASSO("Asso", 14);
// Variabili di istanza
private String nome;
private int valore;
// COSTRUTTORE PRIVATO AD USO ESCLUSIVO DELLA JVM
private ValoriCarte(String nome, int valore)
{
this.nome = nome;
this.valore = valore;
}
// METODO ToString RIDEFINITO
public String toString()
{
return nome;
}
public ValoriCarte successiva()
{
return ValoriCarte.values()[this.ordinal()+1%13];
}
public ValoriCarte precedente()
{
return ValoriCarte.values()[this.ordinal()-1%13];
}
// Atri metodi
public int Valore()
{
return valore;
}
}
La carta deve prendere uno dei valori prescritti dai tipi enumerativi... ma come? E' quì che mi blocco.
In particolare ho trovato un esercizio che dice di creare un tipo enum le cui costanti rappresentano i semi di un mazzo di carte, un secondo enumerativo le cui costanti rappresentano i valori delle carte. Devo poi creare una classe che rappresenta una carta da gioco e infine un mazzo di carte con un array.
Ho scritto questo codice, per definire i due tipi enumerativi. Il problema è che non so come rappresentare la carta da gioco.
public enum Seme
{
// COSTANTI
QUADRI("Quadri"), CUORI("Cuori"), FIORI("Fiori"), PICCHE("Picche");
// Variabili di istanza
private String nome;
// COSTRUTTORE (Dichiarato privato perchè può essere usato solo ed esclusivamente dalla JVM)
private Seme(String nome)
{
this.nome = nome;
}
// Ridefinisco il metodo toString
public String toString()
{
return nome;
}
}
public enum ValoriCarte
{
// COSTANTI ENUMERATIVE
DUE("Due", 2), TRE("Tre", 3), QUATTRO("Quattro", 4), CINQUE("Cinque", 5),
SEI("Sei", 6), SETTE("Sette", 7), OTTO("Otto", 8), NOVE("Nove", 9), DIECI("Dieci", 10),
FANTE("Fante", 11), DONNA("Donna", 12), RE("Re", 13), ASSO("Asso", 14);
// Variabili di istanza
private String nome;
private int valore;
// COSTRUTTORE PRIVATO AD USO ESCLUSIVO DELLA JVM
private ValoriCarte(String nome, int valore)
{
this.nome = nome;
this.valore = valore;
}
// METODO ToString RIDEFINITO
public String toString()
{
return nome;
}
public ValoriCarte successiva()
{
return ValoriCarte.values()[this.ordinal()+1%13];
}
public ValoriCarte precedente()
{
return ValoriCarte.values()[this.ordinal()-1%13];
}
// Atri metodi
public int Valore()
{
return valore;
}
}
La carta deve prendere uno dei valori prescritti dai tipi enumerativi... ma come? E' quì che mi blocco.