IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Exception in thread "main" java.lang.NullPointerException


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Exception in thread "main" java.lang.NullPointerException
    Bonjour,

    Je dois créer un projet de bataille qui se passe sur une grille 8*8 donc 64 cases. Où il y a un joueur humain que je pilote et 6 robots dirigés par une intelligence artificielle.

    A tour de rôle, les chevaliers doivent se déplace dans une des 4 cases qui se trouvent à coté d'eux. S'ils se retrouvent à 2 sur une case il y a une bataille et un vainqueur, l'autre disparaît du jeu.

    J'ai créé plusieurs classes :

    • chevalier
    • humain
    • robot
    • jeu
    • point
    • plateau


    Le plateau est créé mais pour le moment je n'ai pas mis les écouteurs, donc il ne marche pas.
    Pour le moment j'utilise seulement l'interface de texte pour jouer.

    Voici ma classe Humain :
    Code java : 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
    import java.util.Scanner; 
     
    public class Humain extends Chevalier { 
     
        private Scanner    sc; 
        private Point    p; 
     
        public Humain (String nom) { 
     
            super(nom); 
            this.force = 100; 
            this.vitalite = 100; 
        } 
     
        public void deplace () { 
     
            boolean a; 
            sc = new Scanner(System.in); 
            System.out.println("Veuillez saisir une position :"); 
            p = new Point(sc.nextInt()); 
            a = (this.position.getId() - 8 == p.getId() || this.position.getId() + 8 == p.getId() || this.position.getId() - 1 == p.getId() || this.position.getId() + 1 == p.getId()); 
            while (a == false) { 
                deplace(); 
            } 
            { 
                this.p = position; 
                this.p.getTabChevalier().add(this); 
            } 
        } 
    }
    et ma classe Test
    Code java : 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
    public class test { 
     
        public static void main (String[] args) { 
     
            Humain C1 = new Humain("lou"); 
            System.out.println("le nom du chevalier humain =" + C1.nom); 
            System.out.println("la force du chevalier humain =" + C1.force); 
            System.out.println("la vitalité du chevalier humain =" + C1.vitalite); 
            System.out.println("la transmission du chevalier humain =" + C1.transmission); 
            System.out.println("la position du chevalier humain =" + C1.getPosition().getId()); 
            System.out.println("le nombre de chevalier sur ce point =" + C1.getPosition().getTabChevalier().size()); 
            System.out.println("la position du chevalier humain =" + C1.getPosition().getId()); 
            Robot R = new Robot(); 
            System.out.println("la position du chevalier Robot =" + R.getPosition().getId()); 
            C1.deplace(); 
            R.deplace(); 
            System.out.println("la position du chevalier humain =" + C1.getPosition().getId()); 
        } 
    }

    Lorsque je compile j'ai le message d'erreur suivant :
    Exception in thread "main" java.lang.NullPointerException
    at bat.Humain.deplace(Humain.java:23)
    at bat.test.main(test.java:25)
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Hé bien tout simplement, le problème vient du fait qu'à la ligne 23 de ta classe Humain, tu utilises un objet qui n'est pas initialisé ^^

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et comme le code posté n'est pas exactement celui que tu as utilisé, impossible pour nous de savoir à quoi correspond cette ligne...

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,
    Citation Envoyé par tchize_ Voir le message
    Et comme le code posté n'est pas exactement celui que tu as utilisé, impossible pour nous de savoir à quoi correspond cette ligne...
    Ca devait davantage l'être avant que le post ne soit remis en forme par mes soins. Un problème technique est venu perturber cette opération, quoi qu'il en soit ce n'est pas de la faute de lou.marie.

    Néanmoins, a priori ce doit être la ligne 21 ici qui est en cause et la variable position n'est probablement pas initialisée avant l'appel this.position.getId()
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Non, ce n'est pas ça selon moi, puisqu'il affiche sans soucis avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C1.getPosition().getId()

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    A condition que getPosition() soit bien implémenté de la façon qu'on imagine...

Discussions similaires

  1. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException ?
    Par freezerhm dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 04/12/2007, 09h26
  2. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par Trint dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 27/02/2007, 11h28
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo