Erreur dans mon programme
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:
1 2 3 4 5 6 7
| public class Carte {
int ValeurCarte ;
Couleur CouleurCarte;
} |
Code:
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:
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
} |
Code:
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;
} |
je vous remercie d'avance pour vos réponses.