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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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));
	}
}