Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
Résolu
Rhegar
Messages postés
10
Statut
Membre
-
Rhegar Messages postés 10 Statut Membre -
Rhegar Messages postés 10 Statut Membre -
Bonjour,
Je suis en train d'essayer de coder une partie de domino sous Java.
public class Domino
{
public static void main (String args[])
{
ArrayList<int []> pioche=new ArrayList<int []>();
Random gen = new Random();
for (int i=0;i<7;i++)
{
for (int j=0;j<=i;j++)
{
pioche.add(new int[]{i,j});
System.out.print("("+ i + ", " + j + ") ");
}
System.out.println();
}
int[][] joueur1_pioche=new int[7][49];
int[][] joueur2_pioche=new int[7][49];
int [] main_du_joueur1 = null;
int [] main_du_joueur2 = null;
for (int i=0;i<joueur1_pioche.length;i++)
{
main_du_joueur1=pioche.get(gen.nextInt(pioche.size()));
main_du_joueur2=pioche.get(gen.nextInt(pioche.size()));
pioche.remove(main_du_joueur1);
pioche.remove(main_du_joueur2);
joueur1_pioche[i] = main_du_joueur1;
joueur2_pioche[i] = main_du_joueur2;
}
System.out.println("\nPioche\tJoueur 1\tJoueur 2");
for (int i=0;i<joueur1_pioche.length;i++)
{
System.out.print((i+1) +": \t ");
for (int j=0;i<joueur1_pioche.length;j++)
{
System.out.print(joueur1_pioche[i][j] + " ");
Et la je reçois une erreur du type Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept correspondant à la dernière ligne du code ci dessus.
Je pense que cela à avoir avec le int[][] joueur1_pioche=new int[7][49]; mais je ne vois pas ou.
Merci bien.
Je suis en train d'essayer de coder une partie de domino sous Java.
public class Domino
{
public static void main (String args[])
{
ArrayList<int []> pioche=new ArrayList<int []>();
Random gen = new Random();
for (int i=0;i<7;i++)
{
for (int j=0;j<=i;j++)
{
pioche.add(new int[]{i,j});
System.out.print("("+ i + ", " + j + ") ");
}
System.out.println();
}
int[][] joueur1_pioche=new int[7][49];
int[][] joueur2_pioche=new int[7][49];
int [] main_du_joueur1 = null;
int [] main_du_joueur2 = null;
for (int i=0;i<joueur1_pioche.length;i++)
{
main_du_joueur1=pioche.get(gen.nextInt(pioche.size()));
main_du_joueur2=pioche.get(gen.nextInt(pioche.size()));
pioche.remove(main_du_joueur1);
pioche.remove(main_du_joueur2);
joueur1_pioche[i] = main_du_joueur1;
joueur2_pioche[i] = main_du_joueur2;
}
System.out.println("\nPioche\tJoueur 1\tJoueur 2");
for (int i=0;i<joueur1_pioche.length;i++)
{
System.out.print((i+1) +": \t ");
for (int j=0;i<joueur1_pioche.length;j++)
{
System.out.print(joueur1_pioche[i][j] + " ");
Et la je reçois une erreur du type Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept correspondant à la dernière ligne du code ci dessus.
Je pense que cela à avoir avec le int[][] joueur1_pioche=new int[7][49]; mais je ne vois pas ou.
Merci bien.
A voir également:
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
- In da place - Forum Mail
- Girl in the basement streaming vf - Forum Cinéma / Télé
- Dc in - Forum Disque dur / SSD
- Aux in ✓ - Forum Enceintes / HiFi
- Navigation in private - Guide
3 réponses
https://openclassrooms.com/fr/courses
tu doit apprendre a gérer les exceptions
tu doit apprendre a gérer les exceptions
Comme elles ne sont généralement pas rattrapés (puisqu'elle proviennent a priori d'une erreur dans le code) ces exceptions arrêtent le programme et s'affichent. Il suffit donc de lire l'exception pour savoir où et pourquoi ça a planté.. Par exemple ici, on a aurait le numéro de ligne et l'indice qui a planté (qui correspond à l'indice j==joueur1_pioche[i].length, c'est à dire 49), puisque c'est le premier indice qui plante...
Merci pour le i transformé en j.
Mais malheureusement cela ne résout pas le problème.
Mais malheureusement cela ne résout pas le problème.