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:
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
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; } }
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)); } }
Partager