0

Here is my code:

        Piece grille[][] = new Piece[9][9];
        grille[0][0] = new Piece(1,joueur1,0);
        grille[8][0] = new Piece(1,joueur2,0);
        grille[0][8] = new Piece(1,joueur2,0);
        grille[8][8] = new Piece(1,joueur1,0);
        grille[0][1] = new Piece(3,joueur2,1);
        grille[1][0] = new Piece(3,joueur2,1);
        grille[1][1] = new Piece(3,joueur2,1);
        grille[7][0] = new Piece(3,joueur1,2);
        grille[7][1] = new Piece(3,joueur1,2);
        grille[8][1] = new Piece(3,joueur1,2);
        grille[7][7] = new Piece(3,joueur2,3);
        grille[7][8] = new Piece(3,joueur2,3);
        grille[8][7] = new Piece(3,joueur2,3);
        grille[0][7] = new Piece(3,joueur1,4);
        grille[1][7] = new Piece(3,joueur1,4);
        grille[1][8] = new Piece(3,joueur1,4);
        grille[3][4] = new Piece(2,joueur1,0);
        grille[5][4] = new Piece(2,joueur2,0);

        for(int i=0; i<9; i++){
            for(int j=0;j<9;j++){
                if(grille[i][j].joueur == null)
                    grille[i][j] = new Piece(0, null,0); //0 correspond a case vide
            }
        }

My instance variables in Piece are :

public int type;    
public Joueur joueur;
public int param;

It seems that the error comes from this: grille[i][j].joueur == null

I get this error:

Exception in thread "main" java.lang.NullPointerException at Citadella.(Citadella.java:35) at Partie.main(Partie.java:8)

Luiggi Mendoza
  • 85,076
  • 16
  • 154
  • 332
yolo
  • 67
  • 1
  • 8

2 Answers2

0

The problem with your code is that you have empty spots in your array. The loops are going to make blind calls, grille[0][0].joule then grille[0][1].joule then grille[0][2]. Since you didn't assign grille[0][2] it's null. Thus your null pointer exception.

Patrick J Abare II
  • 1,129
  • 1
  • 10
  • 31
0

I think you want if grille[i][j] == null instead of dereferencing joueur on it.

arcy
  • 12,845
  • 12
  • 58
  • 103