Bonsoir,

Pour un mini-projet scolaire, ils nous a été demandé de réaliser le code du jeu CRAPS en java.
Celui-ci comporte des règles différentes.

J'ai réalisé une structure du code mais rien n'à faire, je n'arrive pas à résoudre mon problème de boucle.

ERREUR:
* Mon programme est dans une boucle infinie.
* Les chiffres de mes dés du premier tour sont toujours équivalent à ceux du 2e (et plus).

Merci de votre aide !

projet_Craps_BouleDeBoue.pdf
CRAPS.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
 
package Craps;
 
import java.util.Random;
import java.util.Scanner;
 
public class CRAPS {
 public static void main(String[] args) {
  Random generateur = new Random();
  Scanner s = new Scanner(System.in);
 
  // Création des variables
  int d1 = (generateur.nextInt(6) + 1); // DES PREMIER TOUR
  int d2 = (generateur.nextInt(6) + 1);
  int d1t = (generateur.nextInt(6) + 1); // DES TOUR 2 ET +
  int d2t = (generateur.nextInt(6) + 1);
  int jeton = 10; // jeton de départ
  int mise = 0; // mise du joueur
  int cote = 2; // cote de la mise
  int tour = 1; // COMPTEUR TOUR 
  int somme = d1 + d2; // SOMME DES 2 D
  int but = 0; // BUT A ATTEINDRE 
  String win = "Gagné !";
  String lose = "Perdu !";
 
 
  // Règle
  String regle = "On joue au Craps à l'aide de deux dés. Chaque fois qu'on lance les dés, on prend la somme des deux\n" +
   "chiffres affichés. Au premier tour, le joueur gagne immédiatement s'il fait 7 ou\n" +
   "11 et perd immédiatement s'il fait 2, 3 ou 12. S'il fait un autre nombre, ce nombre devient son but et\n" +
   "il peut alors relancer les dés jusqu'à ce qu'il gagne la partie en reproduisant son but ou qu'il perde en\n" +
   "faisant 7.\n" +
   "Pour pimenter le jeu, le joueur mise des jetons avant de commencer une partie, sa mise allant de 1\n" +
   "au nombre de jetons qu'il possède. S'il gagne, il double sa mise, sinon, sa mise est perdue. Vous perdez lorsque\n" +
   "vous n'avez plus de jetons ou vous pouvez vous arreter en misant 0 jeton\n ";
 
  // ACCUEIL
  System.out.println("--BIENVENUE DANS LE JEU DU CRAPS--");
 
  // DEMANDE DE REGLE
  System.out.println("Si vous ne connaissez pas les règles, introduisez la valeur -5 sinon mettez un autre nombre");
  int rule = s.nextInt();
  if (rule == -5) {
   System.out.println(regle);
  }
  for (int q = 0; q <= 1000; q++) { // JETON + MISE   
   System.out.println("Vous avez " + jeton + " jeton(s)");
   System.out.print("Combien de jeton(s) voulez-vous misez ? (0 pour arrêter): ");
   mise = s.nextInt();
 
   //BOUCLE DES D TOUR 1
   while (tour == 1) {
 
    if (mise > 0 && mise <= jeton) {
     jeton -= mise;
     for (int i = 0; i < 1; i++) {
      // EXECUTION DES D
      System.out.println("Vous avez lancé: " + d1 + " et " + d2 + " au tour " + tour + " . Somme = " + somme);
     }
     // CONDITION GAGNE
     if (somme == 7 || somme == 11) {
      System.out.println(win);
      tour--;
      jeton += (mise * 2);
      System.out.println("vous avez maintenant " + jeton);
     } else { // PERDU
      if (somme == 2 || somme == 3 || somme == 12) {
       System.out.println(lose);
       tour--;
       System.out.println("Vous avez maintenant " + jeton);
      } else { //BUT
       System.out.println("Votre but à atteindre est  " + somme);
       but = somme;
      }
     }
    } else
    if (mise == 0) {
     System.out.println("A bientot !");
    } else
    if (mise > jeton || mise < 0) {
     System.out.println("Erreur de mise, Réintroduisez votre mise ");
     tour--;
    }
    tour++;
   }
   while (tour >= 2) {
    for (int i = 0; i < 1; i++) {
     // EXECUTION DES D
     System.out.println("Vous avez lancé: " + d1 + " et " + d2 + " au tour " + tour + " . Somme = " + somme);
    }
    // CONDITION DE SOMME TOUR 2 ET + (PERDU/GAGNE)
    if (somme == but) {
     System.out.println(win);
     tour = 1;
     jeton += (mise * 2);
     System.out.println("Vous avez maintenant " + jeton);
    } else {
     if (somme == 7) {
      System.out.println(lose);
      tour = 1;
      System.out.println("Vous avez maintenant " + jeton);
     } else if (somme != but && somme != 7) {
      tour++;
      System.out.println("Vous avez lancé: " + d1t + " et " + d2t + " au tour " + tour + " . Somme = " + somme);
     }
    }
   }
 
 
  }
 }
}