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 :
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
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); } } }
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 :
Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?Exception in thread "main" java.lang.NullPointerException
at bat.Humain.deplace(Humain.java:23)
at bat.test.main(test.java:25)
Merci d'avance pour votre aide.
Partager