A voir également:
- Tableau de structures en Java
- Tableau croisé dynamique - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau ascii - Guide
- Tableau word - Guide
6 réponses
Utilisateur anonyme
25 mars 2011 à 21:07
25 mars 2011 à 21:07
Salut,
Exception in thread "main" java.lang.NullPointerException
at carte.genererPaquetDebut(carte.java:57)
Signifie que tu as un indice "null" et que le probème se situe ligne 57 du programme.
Il est indiqué que c'est dans la classe carte.
Or le code que tu nous donne est celui de la classe Cartes.
Qu'as-tu exécuté ?
Cordialement,
Dan
Exception in thread "main" java.lang.NullPointerException
at carte.genererPaquetDebut(carte.java:57)
Signifie que tu as un indice "null" et que le probème se situe ligne 57 du programme.
Il est indiqué que c'est dans la classe carte.
Or le code que tu nous donne est celui de la classe Cartes.
Qu'as-tu exécuté ?
Cordialement,
Dan
Bonjour,
Merci pour cette réponse rapide.
"carte" et le nom de mon programme. Il contient des autres fonction comme afficher les règles du jeu, saisir le prénom du joueur etc.
Je me suis demandé si c'était un problème d'importation du paramètre paquetDebut?
En gros j'ai :
mon main qui appelle la fonction menu ()
action menu qui appelle l'action nouvellePartie ()
nouvellePartie qui déclare Cartes[] paquetDebut = new Cartes et qui appelle la fonction genererPaquetDebut(paquetDebut)
Merci pour cette réponse rapide.
"carte" et le nom de mon programme. Il contient des autres fonction comme afficher les règles du jeu, saisir le prénom du joueur etc.
Je me suis demandé si c'était un problème d'importation du paramètre paquetDebut?
En gros j'ai :
mon main qui appelle la fonction menu ()
action menu qui appelle l'action nouvellePartie ()
nouvellePartie qui déclare Cartes[] paquetDebut = new Cartes et qui appelle la fonction genererPaquetDebut(paquetDebut)
Utilisateur anonyme
26 mars 2011 à 17:15
26 mars 2011 à 17:15
Re,
Ok c'est donc la ligne 57 de la classe "carte" (qu'il aurait été mieux de nommer Carte pour respecter les conventions de "nommage"...) qui provoque cette levée d'exception,
Quelle est donc cette ligne ? (avec la partie du code dans laquelle elle se trouve).
Merci
Dan
Ok c'est donc la ligne 57 de la classe "carte" (qu'il aurait été mieux de nommer Carte pour respecter les conventions de "nommage"...) qui provoque cette levée d'exception,
Quelle est donc cette ligne ? (avec la partie du code dans laquelle elle se trouve).
Merci
Dan
Bonjour,
D'accord pour les conventions de nommage, je le saurai maintenant!
Je vous mets mon bout de code simplifié (j'ai enlevé les parties qui ne posaient pas problème pour plus de lisibilité).
Le but de mon action genererPaquetDebut est de créer un tableau de 32 cases où chaque cases contient une carte définit par la structure Cartes. Et le paquet doit être classé dans un ordre définit. Ici on aura 7 coeur, 8 coeur .. 7 carreau, 8 carreau etc.
Je pense que le problème vient de la syntaxe paquetDebut[indiceCOE].numero.
Je pense qu'il faudrait créer une structure vide genre Cartes carteIci = new Cartes(), puis l'appelé en écrivant carteIci.numero ou carteIci.couleur mais je ne sais pas comment faire le lien avec les indices de mon tableau.
D'accord pour les conventions de nommage, je le saurai maintenant!
Je vous mets mon bout de code simplifié (j'ai enlevé les parties qui ne posaient pas problème pour plus de lisibilité).
Le but de mon action genererPaquetDebut est de créer un tableau de 32 cases où chaque cases contient une carte définit par la structure Cartes. Et le paquet doit être classé dans un ordre définit. Ici on aura 7 coeur, 8 coeur .. 7 carreau, 8 carreau etc.
public class Whist{ public static void main (String[]args){ Cartes[] paquetDebut = new Cartes[32]; genererPaquetDebut(paquetDebut); nouvellePartie(paquetDebut); } public static void nouvellePartie(Cartes[] paquetDebut){ affichagePaquetDebut(paquetDebut); } public static void genererPaquetDebut(Cartes[] paquetDebut){ int ind=0; int indiceCOE=0; int indiceCAR=8; int indicePIQ=16; int indiceTRE=24; int numcarte=7; do{ paquetDebut[indiceCOE].numero=numcarte; paquetDebut[indiceCAR].numero=numcarte; paquetDebut[indicePIQ].numero=numcarte; paquetDebut[indiceTRE].numero=numcarte; paquetDebut[indiceCOE].couleur="<3"; paquetDebut[indiceCAR].couleur="<>"; paquetDebut[indicePIQ].couleur="^"; paquetDebut[indiceTRE].couleur="o°o"; numcarte+=1; indiceCOE+=1; indiceCAR+=1; indicePIQ+=1; indiceTRE+=1; }while (indiceTRE<=31); } public static void affichagePaquetDebut(Cartes[] paquetDebut){ int ind=0; for (ind=0;ind<32;ind+=1){ switch (paquetDebut[ind].numero){ case 11 : System.out.print("[Val "+paquetDebut[ind].couleur+"]"); break; case 12 : System.out.print("[Dam "+paquetDebut[ind].couleur+"]"); break; case 13 : System.out.print("[Roi "+paquetDebut[ind].couleur+"]"); break; case 14 : System.out.print("[As "+paquetDebut[ind].couleur+"]"); break; default : System.out.print("["+paquetDebut[ind].numero+" "+paquetDebut[ind].couleur+"]"); } } } } class Cartes{ int numero; String couleur; }
Je pense que le problème vient de la syntaxe paquetDebut[indiceCOE].numero.
Je pense qu'il faudrait créer une structure vide genre Cartes carteIci = new Cartes(), puis l'appelé en écrivant carteIci.numero ou carteIci.couleur mais je ne sais pas comment faire le lien avec les indices de mon tableau.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
27 mars 2011 à 18:30
27 mars 2011 à 18:30
Re,
La classe Whist est la classe utilisateur.
La classe Cartes est la classe qui génère le paquet de cartes.
On suppose qu'il faut (pour simplifier) enregistrer toutes les cartes dans le paquet.
Comment depuis la classe Whist demander à la classe Cartes de créer le paquet et de retourner le résultat ?
La classe utilisateur:
La classe Cartes:
Cordialement,
Dan
La classe Whist est la classe utilisateur.
La classe Cartes est la classe qui génère le paquet de cartes.
On suppose qu'il faut (pour simplifier) enregistrer toutes les cartes dans le paquet.
Comment depuis la classe Whist demander à la classe Cartes de créer le paquet et de retourner le résultat ?
La classe utilisateur:
public class Whist { /* Création du paquetDebut (vide) d'une taille de 52 cartes */ private static String[] paquetDebut = new String[52]; public static void main (String[]args) { Cartes crt = new Cartes(); // création de l'objet crt de la classe Cartes paquetDebut = crt.genererPaquetDebut(paquetDebut); /* * * paquetDebut = signifie qu'on veut récupérer le paquet créé. * * crt.genererPaquetDebut(paquetDebut), indique que c'est la méthode * genererPaquetDebut de la classe Cartes (objet crt) à laquelle * on passe paquetDebut (vide) en paramètre qui doit genérer. * */ affichagePaquetDebut(); // contrôle du résultat //nouvellePartie(paquetDebut); } public static void affichagePaquetDebut() { int ind=0; for (ind=0;ind<52;ind+=1) { System.out.println(paquetDebut[ind]); } } }
La classe Cartes:
class Cartes { public String[] genererPaquetDebut(String[] paquetDebut) { int ind; int indiceCOE=0; int indiceCAR=13; int indicePIQ=26; int indiceTRE=39; //int numcarte=0; System.out.println("Taille du paquetDebut = " + paquetDebut.length); for(int i = 0; i <52; i++) { paquetDebut[indiceCOE] = "Num. carte de coeur = " + (i + 1); paquetDebut[indiceCAR] = "Num. carte de carreau = " + (i + 1); paquetDebut[indicePIQ] = "Num. carte de pique = " + (i + 1); paquetDebut[indiceTRE] = "Num. carte de trèfle = " + (i + 1); // les numéros de cartes 11, 12 et 13 correspondent au valet, dame et roi de chaque couleur... /*paquetDebut[indiceCOE] = "<3"; paquetDebut[indiceCAR] = "<>"; paquetDebut[indicePIQ] = "^"; paquetDebut[indiceTRE] = "o°o"; numcarte++ */ indiceCOE++; indiceCAR++; indicePIQ++; indiceTRE++; if(indiceTRE >51) break; } return paquetDebut; } }
Cordialement,
Dan