Bonjour !


J'étudie le Java pour mes cours de Développeur Informatique et je me vois confronté à un problème ... Voici mon code:
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;
   }
 
}
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) :
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