Sto realizzando una banale applicazione per prendere dimestichezza con Java, tuttavia nonostante compili senza errori quando la eseguo mi restituisce un errore. Lo scopo del programma è quello di creare un mazzo di carte, stamparlo e mescolarlo...
Questo è il codice che è composto da tre classi: Carta, Mazzo e Test.
codice:
//Carta.java
public class Carta{
private String seme;
private String valore;
//costruttori
public Carta(){
seme = "?";
valore = "?";
}
public Carta(String semeCarta, String valoreCarta){
seme = semeCarta;
valore = valoreCarta;
}
//metodi set/get
public String getSeme() {return seme;}
public String getValore() {return valore;}
//metodi stampa
public void stampa(){
System.out.print(valore + " di " + seme);
}
public void stampaln(){
System.out.println(valore + " di " + seme);
}
}
codice:
//Mazzo.java
public class Mazzo{
final int NUMERO_CARTE = 52;
private Carta[] mazzo;
//costruttori
public Mazzo(){
String[] seme = {"Cuori", "Mattoni", "Picche", "Fiori"};
String[] valore = {"Asso", "Due", "Tre", "Quattro", "Cinque",
"Sei", "Sette", "Otto", "Nove", "Dieci",
"Jack", "Donna", "Regio"};
mazzo = new Carta[NUMERO_CARTE];
for(int i=0; i<NUMERO_CARTE; i++)
mazzo[i] = new Carta(seme[i%13], valore[i/13]);
}
//metodi stampa
public void stampa(){
System.out.println("Mazzo di carte:");
for(int i=0; i<NUMERO_CARTE; i++)
mazzo[i].stampaln();
}
}
codice:
//Test.java
public class test{
public static void main(String[] Args){
Mazzo mazzoCarte = new Mazzo();
mazzoCarte.stampa();
}
}
L'errore che mi restituisce in fase di esecuzione è il seguente:
codice:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Mazzo.<init>(Mazzo.java:14)
at test.main(Test.java:3)
Grazie in anticipo per l'aiuto.