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(); } }L'errore che mi restituisce in fase di esecuzione è il seguente:codice://Test.java public class test{ public static void main(String[] Args){ Mazzo mazzoCarte = new Mazzo(); mazzoCarte.stampa(); } }
Grazie in anticipo per l'aiuto.codice:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Mazzo.<init>(Mazzo.java:14) at test.main(Test.java:3)

Rispondi quotando