[Débutant] Erreur "java.lang.NullPointerException"
	
	
		Bonjour,
Je souhaite développer un jeu tel que :
- Il y a deux joueurs et l'un deux doit capturer les billes de l'autre.
- Il y a une méthode distribue_bille() qui permet au joueur de distribuer les billes et donc de se déplacer.
- Il y a aussi une méthode capture_bille() qui permet de capturer les billes de l'autre.
 
Le problème est que le Joueur arrive à distribuer les billes mais n'arrive pas à capturer les billes. 
Dans la méthode capture_bille() quand je place System.out.println("9")  avant if((Joueur2.cas[23-numero_case].nombre_bille!=0)&&(Joueur2.cas[numero_case-8].nombre_bille!=0)), 9 est affiché. Par contre, si je mets System.out.println("9")  après if((Joueur2.cas[23-numero_case].nombre_bille!=0)&&(Joueur2.cas[numero_case-8].nombre_bille!=0)), 9 n'est pas affiché. 
Comme si le problème résidait dans le if((Joueur2.cas[23-numero_case].nombre_bille!=0)&&(Joueur2.cas[numero_case-8].nombre_bille!=0))
Voici l'erreur que j'obtiens : 
	Citation:
	
		
		
			 Exception in thread "main" java.lang.NullPointerException
        at Joueur1.capture_bille(Joueur1.java:197)
        at Joueur1.distribue_bille(Joueur1.java:178)
        at Joueur1.distribue_bille(Joueur1.java:171)
        at Joueur1.distribue_bille(Joueur1.java:171)
        at Jeu.lance_jeu(Jeu.java:27)
        at Jeu.main(Jeu.java:113)
			
		
	
 Voici mon code
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | void capture_bille() {
    if ((8 <= numero_case) && (numero_case <= 15)) {
        // System.out.println("9");
        if ((Joueur2.cas[23 - numero_case].nombre_bille != 0) && (Joueur2.cas[numero_case - 8].nombre_bille != 0)) {
        //System.out.println("9");
            nombre_bille = Joueur2.cas[23 - numero_case].nombre_bille + Joueur2.cas[numero_case - 8].nombre_bille;
            System.out.print(nombre_bille);
            Joueur2.cas[23 - numero_case].nombre_bille = 0;
            Joueur2.cas[numero_case - 8].nombre_bille = 0;
 
            if (compteur != 0) {
                Bille case_vide = getcase_vide();
                numero_case = case_vide.getnumero_case();
 
                distribue_bille();
            } else {
                numero_case = temp;
                distribue_bille();
            }
 
        }
    }
} | 
 
	Code:
	
| 12
 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
 
 |  
      void distribue_bille(){
 if ((0 <= numero_case) && (numero_case < 16)) {
 
        nombre_bille = cas[numero_case].nombre_bille;
 
        for (int i = numero_case + 1; i < numero_case + nombre_bille; i++) {
            cas[i].nombre_bille = cas[i].getnombre_bille() + 1;
        }
 
        cas[numero_case].nombre_bille = 0;
 
        if (cas[numero_case + nombre_bille].nombre_bille == 0) {
 
            cas[numero_case + nombre_bille + 1].nombre_bille = cas[numero_case + nombre_bille + 1].getnombre_bille() + 1;
 
            System.out.println("Le Joueur1 a fait Mador");
 
        } else {
 
            System.out.println("distribue");
 
            cas[numero_case + nombre_bille].nombre_bille = cas[numero_case + nombre_bille].getnombre_bille() + 1;
            numero_case = numero_case + nombre_bille;
 
            if ((0 <= numero_case) && (numero_case <= 8)) {
 
                distribue_bille();
                cas[numero_case].nombre_bille = 0;
 
            } else {
                if (numero_case >= 8) {
 
                    temp = numero_case;
                    capture_bille();
 
                    System.out.println("capture");
                }
            }
        }
    } | 
 Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?
Merci d'avance pour votre aide.