Bonjour !
J'étudie le Java pour mes cours de Développeur Informatique et je me vois confronté à un problème ... Voici mon code:
Donc voilà le problème, si je met le contenu des deux méthodes de la clase Jeu, je n'est aucun problème mais lorsque je fait comme montré ci-dessus j'obtiens ceci lors de l'exécution (aucun problème à la compilation) :
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
113
114
115
116 import java.io.*; public class JBelote { public static void main (String [] args) { Jeu jeu = new Jeu (); /* * Initialisation du programme : */ jeu.initProgramme (); /* * Debut du jeu (distribution des cartes) : */ boolean b_ret = jeu.distributionCartes (); } } class Jeu { public Graphique g; public JoueurProgramme [] jp; public PaquetDeCartes [] paquetCartes; public void initProgramme () { int i = 0; Terminal.sautDeLigne (); Terminal.ecrireStringln ("Initialisation du programme :"); Terminal.ecrireStringln ("> Creation de la fenetre..."); Graphique g = new Graphique (); Terminal.ecrireStringln ("> Creation des joueurs..."); JoueurProgramme [] jp = new JoueurProgramme [3]; for (i = 0; i < 3; i++) { jp [i] = new JoueurProgramme (); } Terminal.ecrireStringln ("> Creation des paquets de cartes..."); PaquetDeCartes [] paquetCartes = new PaquetDeCartes [4]; for (i = 0; i < 4; i++) { paquetCartes [i] = new PaquetDeCartes (); } Terminal.sautDeLigne (); } public boolean distributionCartes () { int i, j = 0; char reponse; boolean b_ret = true; Terminal.ecrireStringln ("Debut du jeu :"); Terminal.ecrireStringln ("> Distribution des cartes : premier tour..."); i = j = 0; for (i = 0; i < 4; i++) { /* Lot de 3 cartes : */ for (j = 0; j < 3; j++) { paquetCartes[i].ajoute (new Carte (Couleur.Coeur, Figure.Dame)); } /* Lot de 2 cartes : */ for (j = j; j < 5; j++) { paquetCartes[i].ajoute (new Carte (Couleur.Coeur, Figure.Dame)); } Terminal.ecrireString ("Jeu du joueur : " + i + " : "); paquetCartes[i].affiche (); g.affiche1 (paquetCartes[i], new Carte (Couleur.Pique, Figure.Valet)); } Terminal.ecrireStringln ("> Premier tour de table..."); Terminal.ecrireStringln ("Voulez-vous prendre cette carte du paquet (o/n) ?"); reponse = Terminal.lireChar (); if (reponse == 'n') { Terminal.ecrireStringln ("> Second tour de table..."); Terminal.ecrireStringln ("Voulez-vous prendre cette carte du paquet (o/n) ?"); reponse = Terminal.lireChar (); if (reponse == 'n') { return false; } } Terminal.ecrireStringln ("> Distribution des cartes : second tour..."); for (i = 0; i < 4; i++) { /* Lot de 3 cartes : */ for (j = 5; j < 8; j++) { paquetCartes[i].ajoute (new Carte (Couleur.Pique, Figure.Roi)); } Terminal.ecrireString ("Jeu du joueur : " + i + " : "); paquetCartes[i].affiche (); g.affiche2 (paquetCartes[i]); } return b_ret; } }
franhec@franhec-ubuntu:~/Documents/Programmation/Java/JBelote$ javac JBelote.java
franhec@franhec-ubuntu:~/Documents/Programmation/Java/JBelote$ java JBelote
Initialisation du programme :
> Creation de la fenetre...
> Creation des joueurs...
> Creation des paquets de cartes...
Debut du jeu :
> Distribution des cartes : premier tour...
Exception in thread "main" java.lang.NullPointerException
at Jeu.distributionCartes(JBelote.java:71)
at JBelote.main(JBelote.java:19)
Mais voilà, je ne sais pas pourquoi, si vous pouviez m'éclairer !
Merci pour tout![]()
Partager