Array Out Of BoundsException:0
Bonjour à tous,
J'ai un problème qui dur depuis 24h : je veux faire en sorte que l'utilisateur decide lui même de la taille de la combinaison mastermind( Attention : ce n'est pas du graphique) . Seul problème lorsque je lance le main (deuxième fragment de code) : il me demande de rentrer la taille de la combinaison je la rentre et la j'ai cette erreur:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Mastermind.genererCombinaison(Mastermind.java:23)
at Mastermind.<init>(Mastermind.java:16)
at Main.main(Main.java:7)
Pouvez vous m'aidez? Voici les 2 codes:
Mastermind.java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| import java.lang.Math;
import java.util.Random;
public class Mastermind {
private int tailleCombi;
private Random rnd =new Random();
private int[] combinaison = new int [this.tailleCombi];
public Mastermind(){
this.tailleCombi = 5;
genererCombinaison();
}
public Mastermind(int taille){
this.tailleCombi = taille;
genererCombinaison();
}
public void genererCombinaison(){
for (int i=0;i < this.tailleCombi;i++){
int choix = rnd.nextInt(tailleCombi);
System.out.println(choix);
combinaison[i]=choix;
}
}
public int nbBienplaces (int[] tabChiffres){
int compteur=0;
int j=0;
for (int i=0;i<this.tailleCombi;i++){
if (combinaison[i]== tabChiffres[j]){
compteur++;
}
j++;
}
return compteur;
}
public int nbMalplaces (int[] tabChiffres){
int[] tabTemp = new int [this.tailleCombi];
tabTemp = (int[]) this.combinaison.clone();
int compteur = 0;
for (int k = 0 ; k < this.tailleCombi ; k++){
for (int j = 0 ; j < this.tailleCombi ; j++){
if(tabTemp[j] != -1){
if (tabChiffres[k] == tabTemp[j]){
if(tabChiffres[k] != tabTemp[k]){
compteur++;
tabTemp[j] = -1;
j = 5;
}
else{
tabTemp[k] = -1;
j = 5;
}
}
}
}
}
return compteur;
}
public int[] getCombinaison() {
return combinaison;
}
} |
Main.java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.util.Scanner;
public class Main {
public static void main (String [] args){
System.out.println("Rentrez la taille de la combinaison : ");
Scanner s = new Scanner(System.in);
Mastermind master = new Mastermind(s.nextInt());
int[] tabChiffres = new int[5];
System.out.println("Veuillez saisir votre combinaison");
Scanner sc = new Scanner(System.in);
for (int i=0;i<5;i++){
tabChiffres[i]= sc.nextInt();
}
System.out.println("Nbde chiffres bien places");
System.out.println(master.nbBienplaces(tabChiffres));
System.out.println("Nb de chiffres mal places");
System.out.println(master.nbMalplaces(tabChiffres));
}
} |