Bonjour à tous,

je débute dans mon apprentissage Java, et je suis actuellement sur un exercice qui consiste à deviner une combinaison de chiffres générée par l'ordinateur. Mon problème est le suivant; lorsque je trouve la combinaison je devrais pouvoir passer à la suite du programme mais je reste bloqué à l'intérieur de ma boucle "n°2" (pour en sortir il faut que je dépasse le nombre d'essais autorisés). J'ai essayé de trouver la solution en cherchant à droite à gauche, mais je cale. Si une âme charitable peut m'aider à comprendre d'ou vient le problème, ce serait super!
import java.util.Scanner;

Code java : 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
public class EssaiCode {
             static Scanner sc = new Scanner(System.in);
	       public static void main(String[] args) {
 
 
		final int NB_CHIFFRE = 4;
		final int NB_TOUR = 2;
		int nbTour = 0;
		char reponse = ' ';
		int max = 10;
		int [] combiOrdi = new int [NB_CHIFFRE];
		int [] combiJoueur = new int [NB_CHIFFRE];
 
		do { // DO n°1
 
			// Accueil jeu +/-:
			System.out.println("Bienvenu dans le jeu du plus ou moins");
			System.out.println("Pour jouer, vous allez devoir trouver une combinaison de " + NB_CHIFFRE + " chiffres compris entre 0 et 9 "
					+ "avec " + NB_TOUR + " essais maximum");
			System.out.println("Chaque saisie de chiffre devra être validée avec la touche ENTER");
			System.out.println("----------------------------------");
 
			// je génère une combinaison aleatoire:
 
			for (int i = 0; i < NB_CHIFFRE; i++) {	 	
				combiOrdi [i] = (int) (Math.random() * max);
				System.out.print(combiOrdi [i]); 
			}
 
			do { // DO n°2
 
				// je rentre les 4 chiffres de ma combinaison:
 
				for (int i = 0; i < NB_CHIFFRE; i++) {
					combiJoueur [i] = sc.nextInt();
				}
				/*TEST
				System.out.println(combiJoueur[0]);
				System.out.println(combiJoueur[1]);
				System.out.println(combiJoueur[2]);
				System.out.println(combiJoueur[3]);
				*/
 
				// je compare les 2 combinaisons:
				int i = 0;
				for (i = 0; i < combiJoueur.length; i++) {
					if (combiJoueur[i] > combiOrdi[i]) {
						System.out.print("-");
					} 
					else if (combiJoueur[i] < combiOrdi[i]) {
						System.out.print("+");
					} else { 
						System.out.print("=");
					}
				}
				System.out.println();
				nbTour++; 
 
				// J'indique le nombre d'essais réalisé
				System.out.println("essais n°" + nbTour + " sur " + NB_TOUR+ " essais possibles.");
 
				//--> Je reste dans ma boucle tant les combi sont différentes et le max de tour non atteint
			} while ( combiOrdi.equals(combiJoueur) || nbTour < NB_TOUR ); // WHILE n°2
 
			// TEST
			System.out.println("sorti de la boucle 2");
 
			do {// DO n°3
				if (! combiOrdi.equals(combiJoueur) && nbTour > NB_TOUR) {
					System.out.println("Perdu");
				} else if ( combiOrdi.equals(combiJoueur)) {
					System.out.println("Gagné");
				}
				System.out.println("Voulez-vous recommencer? (O/N): ");
				reponse = sc.next().charAt(0);// j'ai pas mis nextLine() sinon j'avais une exception
 
				if (reponse != 'O' && reponse != 'N') {
					System.out.println("Le caractère entrée et invalide");
				}
 
			} while (reponse != 'O' && reponse != 'N'); // WHILE n°3
 
			if (reponse == 'N') {
				System.out.println("Au revoir");
			}
 
		} while (reponse == 'O');
	} 
}