Bonjour à tous, présentement je rencontre un problème avec mon programme testCraps. Le but est de faire en sorte que les dés continue de relancer tant et aussi longtemps que leur somme ne soit ni 4, 5, 6, 8, 9 ou 10. Or quand je le compile, cela ne se compile pas comme prévu: soit ça s'arrête, soit ça n'affiche pas du tout et je n'arrive pas à cerner le problème. Si quelqu'un peut m'aider, ce serait fantastique. J'ai essayé avec une boucle while, mais ç'a fait en sorte que les dés ne sont plus lancés aléatoirement.
Toutes les classes, ainsi que le main se trouve en-dessous ainsi que les résultats de la compilation. N'hésitez pas à me poser des questions.
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 public class De { private int NBFACE=6; private int face; Random generateur= new Random(); public De() { lancer(); } public int getFace() { return face; } public int lancer(){ face= generateur.nextInt(NBFACE)+1; return face; } }
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 public class JeuCraps { private De de1; private De de2; private int valeur; private static int nbEssai; public JeuCraps() { this.de1=new De(); this.de2=new De(); } public De getDe1() { return de1; } public void setDe1(De de1) { this.de1 = de1; } public De getDe2() { return de2; } public void setDe2(De de2) { this.de2 = de2; } public int getValeur() { return valeur; } public void setValeur(int valeur) { this.valeur = valeur; } public boolean relancer(){ nbEssai++; boolean msg = false; lancerLesDes(); if((de1.getFace()+de2.getFace())==4){ msg=true; }else if((de1.getFace()+de2.getFace())==5){ msg=true; }else if((de1.getFace()+de2.getFace())==6){ msg=true; }else if((de1.getFace()+de2.getFace())==8){ msg=true; }else if((de1.getFace()+de2.getFace())==9){ msg=true; }else if((de1.getFace()+de2.getFace())==10){ msg=true; }if((de1.getFace()+de2.getFace())==7||(de1.getFace()+de2.getFace())==11) { msg=false; gagne(); } return msg; } public void lancerLesDes(){ de1.lancer(); de2.lancer(); } public static int getNbEssai() { return nbEssai; } public static void setNbEssai(int nbEssai) { JeuCraps.nbEssai = nbEssai; } public boolean gagne(){ lancerLesDes(); boolean message=false; if((de1.getFace()+de2.getFace())==7||(de1.getFace()+de2.getFace())==11) message=true; return message; } }
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 public class testCraps { public static void main(String[] args) { JeuCraps jeu= new JeuCraps(); boolean rejouer; int de1= jeu.getDe1().getFace(); int de2= jeu.getDe2().getFace(); int craps= de1+de2; System.out.println("De1\tDe2\tEtat:"); do{ rejouer= jeu.relancer(); //System.out.println(jeu.getDe1().getFace()+"\t"+jeu.getDe2().getFace()); if(rejouer) System.out.println(jeu.getDe1().getFace()+"\t"+jeu.getDe2().getFace()+"\t"+"relancer\n"); else System.out.println(jeu.getDe1().getFace()+"\t"+jeu.getDe2().getFace()+"\t"+"vous avez gagné"); }while(rejouer); } }
Merci d'avance pour toutes les réponses
Partager