Debutant en java , je programme un jeu de bataille.
Le problème c'est que lors de l'execution de la première fonction "GenererJeuDeCarte" celle ci m'affiche une exception et pourtant j'ai verifié si il ne manqué pas d'instantciation (je ne sais pas si ca se dit).
Voici les class et le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class Carte { int ValeurCarte ; Couleur CouleurCarte; }
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 public class Pile { int Sommet; // Pile p vide si Sommet = -1, pleine si Sommet = 51. // Indique la position de la dernière carte empilée Carte T1[] ;// Permet de stocker les élements ( Carte ) de la pile. /* LES PRIMITIVES DE PILES */ /**Fonction qui permet de créer une pile vide. * Fonction(p)renvoie une pile vide. * Fonction(P)renvoie p. * @author lyulyu. * @param p une pile. * @pré Ø * @post Ø * @return une pile. */ public static Pile CreerPile () { Pile p = new Pile(); p.T1 = new Carte [52]; p.Sommet = 0; return p; } /**Fonction qui permet de rajouter une carte dans la pile. * Fonction(p , c)renvoie un boolèen. * Fonction(P)renvoie VRAI. * @author lyulyu. * @param p une pile. * @pré p n'est pas pleine. * @post Ø * @return une pile. */ public static Pile Empiler (Pile p, Carte c) { p.T1[p.Sommet] = c; p.Sommet +=1; return p; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // ici j'ai mis juste les primitives que j'utilise dans ma fonction (précedemment dit). public enum Couleur { h,//hearts d,//diamonds s,//spades c;//clubs }je vous remercie d'avance pour vos réponses.
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 public class S2TP5 { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Pile P; P = Pile.CreerPile(); Carte C = new Carte(); GenererJeuDeCarte(P); System.out.println(AfficherPile(P)); } public static String AfficherPile (Pile p) { int i; String s = ""; Carte c = new Carte(); for (i=0 ; i < 52;i++) { switch(c.ValeurCarte) { case 9: s+= "J" +"" +c.CouleurCarte +"\n"; break; case 10: s+="Q"+"" +c.CouleurCarte +"\n"; break; case 11: s+="K"+"" +c.CouleurCarte +"\n"; break; case 12: s+="AS"+"" +c.CouleurCarte +"\n"; break; } s+= c.CouleurCarte +"" +c.CouleurCarte +"\n"; } return s; } public static Pile GenererJeuDeCarte (Pile p) { int i,j; Carte c = new Carte(); for(i=0;i<13;i++) { p.T1[i].ValeurCarte = c.ValeurCarte; for(j=1;j<=4;j++) { switch (j) { case 1 : p.T1[i].CouleurCarte = Couleur.h; break; case 2 : p.T1[i].CouleurCarte = Couleur.d; break; case 3 : p.T1[i].CouleurCarte = Couleur.s; break; case 4 : p.T1[i].CouleurCarte = Couleur.c; break; } p= Pile.Empiler(p,c); } } return p; }
Partager