[Java] java.lang.NullPointerException
Résolu
Le_mazo
Messages postés
215
Date d'inscription
Statut
Membre
Dernière intervention
-
Le_mazo Messages postés 215 Date d'inscription Statut Membre Dernière intervention -
Le_mazo Messages postés 215 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrais savoir quel est le probleme d'un java.lang.NullPointerException ? si vous voulez je peut ecrire le code..
je voudrais savoir quel est le probleme d'un java.lang.NullPointerException ? si vous voulez je peut ecrire le code..
A voir également:
- [Java] java.lang.NullPointerException
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
Si tu écris a.b il faut que a!=null.
En particulier tout objet doit être initialisé avant d'être utilisé.
En particulier tout objet doit être initialisé avant d'être utilisé.
salut merci de repondre regarde
c'est le jeu snake et j'ai du mal
L'erreur est dans deplacerS (il y a un commentaire):
import iut.algo.*;
public class Metier
{
int nbLig;
int nbCol;
char[][] grille;
Element serpent;
int p;
Element[] anneaux;
int cptAnneaux;
int nbElt;
public Metier(){
grille = new char[][] { { 'X','X','X','X',' ',' ',' ','X','X','X','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X','X','X',' ',' ','*',' ',' ','X','X','X' },
{ ' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ' },
{ ' ',' ',' ',' ',' ','S','*',' ',' ',' ',' ' },
{ ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' },
{ 'X','X','X',' ',' ',' ',' ',' ','X','X','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X',' ',' ','*',' ',' ','*',' ',' ',' ','X' },
{ 'X','X','X','X',' ',' ',' ','X','X','X','X' }};
nbLig = grille.length;
nbCol = grille[0].length;
serpent = new Element (5 ,5);
anneaux = new Element[100];
initSerpent();
}
public void initSerpent(){
anneaux[0] = new Element (5 ,5);
anneaux[1] = new Element (6, 5);
anneaux[2] = new Element (7, 5);
}
public boolean deplacer( char c )
{
Element s;
if ( c == 'N' || c == 'n' )
{
if (serpent.getLig() == 0)
{
if ( mur ( (serpent.getLig() + nbLig - 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() + nbLig - 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( (serpent.getLig() - 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() - 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'S' || c == 's' )
{
if (serpent.getLig() == nbLig - 1 )
{
if ( mur ( (serpent.getLig() - nbLig + 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() - nbLig + 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( (serpent.getLig() + 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() + 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'O' || c == 'o' )
{
if (serpent.getCol() == 0)
{
if ( mur ( serpent.getLig(), (serpent.getCol() + nbCol - 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig(), (s.getCol()+ nbCol - 1));
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( serpent.getLig(), (serpent.getCol() - 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element(s.getLig(), (s.getCol() - 1));
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'E' || c == 'e' )
{
if (serpent.getCol() == nbCol - 1 )
{
if ( mur ( serpent.getLig() , (serpent.getCol()- nbCol + 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig() ,(s.getCol() - nbCol + 1));
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( serpent.getLig(), (serpent.getCol() + 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig(), (s.getCol() + 1));
deplacerS ( serpent, c );
return true;
}
}
}
}
}
}
return false;
}
public boolean mur( int lig, int col){
if ( grille[lig][col] == 'X' )
{
return true;
}
else
{
return false;
}
}
public String toString(){
String a = "";
for (int lig=0; lig<grille.length ; lig++ )
{
for (int col=0; col<grille[0].length ; col++ )
{
a += "" + grille[lig][col] + "";
}
a += "\n";
}
return a;
}
public int compteurPastille (){
p = 0;
for(int cpt = 0; cpt < nbLig; cpt++){
for(int cpt2 = 0; cpt2 < nbCol; cpt2++){
if ( grille[cpt][cpt2] == '*') { p++; }
}
}
return p;
}
public int compteurPastilleInit () {
p = 0;
for(int cpt = 0; cpt < nbLig; cpt++){
for(int cpt2 = 0; cpt2 < nbCol; cpt2++){
if ( grille[cpt][cpt2] == '*') { p++; }
}
}
nbElt = p;
return p;
}
public void deplacerS( Element serpent, char c ) {
Element tmp1;
Element tmp2;
char car =c;
tmp1 = serpent ;
tmp2 = anneaux[nbElt - 1];
for (int cpt = nbElt - 1; cpt > 0; cpt--){
anneaux[cpt] = anneaux[cpt-1];
grille[anneaux[cpt].getLig()][anneaux[cpt].getCol()] = 'o'; // L'erreur est ici
}
anneaux[0] = tmp1;
grille[tmp1.getLig()][tmp1.getCol()] = 'S';
grille[tmp2.getLig()][tmp2.getCol()] = ' ';
agrandirQueue ( car );
}
public boolean mangerPastille( char c){
switch ( c ){
case 'n' : if(grille[(serpent.getLig() - 1)][serpent.getCol()]== '*') { return true ; }
else { return false; }
case 's' : if(grille[(serpent.getLig() + 1)][serpent.getCol()]== '*') { return true ; }
else { return false; }
case 'o' : if(grille[(serpent.getLig())][serpent.getCol() - 1]== '*') { return true ; }
else { return false; }
case 'e' : if(grille[(serpent.getLig())][serpent.getCol() + 1]== '*') { return true ; }
else { return false; }
}
return false;
}
/*public void agrandirQueue( char c){
if ( mangerPastille( c )){
anneaux[nbElt] = new Element( anneaux[nbElt - 1].getLig(), anneaux[nbElt - 1].getCol() );
nbElt++;
}
}*/
public boolean partieFini ( ) {
boolean mordu = false;
for (int cpt = nbElt; cpt > 0; cpt--){
mordu = (anneaux[0] == anneaux[cpt]);
if( mordu ){
System.out.println ( "HAHAHA, vous avez PERDU !!!"); return true;
}
if( p == 0 ) { System.out.println ( "Bravo, vous avez GAGNE !!!"); return true; }
else { return false; }
}
return false;
}
}
_______________________________________________________________________
A tous c'est Le_mazo
c'est le jeu snake et j'ai du mal
L'erreur est dans deplacerS (il y a un commentaire):
import iut.algo.*;
public class Metier
{
int nbLig;
int nbCol;
char[][] grille;
Element serpent;
int p;
Element[] anneaux;
int cptAnneaux;
int nbElt;
public Metier(){
grille = new char[][] { { 'X','X','X','X',' ',' ',' ','X','X','X','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X','X','X',' ',' ','*',' ',' ','X','X','X' },
{ ' ','*',' ',' ',' ',' ',' ',' ',' ',' ',' ' },
{ ' ',' ',' ',' ',' ','S','*',' ',' ',' ',' ' },
{ ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' },
{ 'X','X','X',' ',' ',' ',' ',' ','X','X','X' },
{ 'X',' ',' ',' ',' ',' ',' ',' ',' ',' ','X' },
{ 'X',' ',' ','*',' ',' ','*',' ',' ',' ','X' },
{ 'X','X','X','X',' ',' ',' ','X','X','X','X' }};
nbLig = grille.length;
nbCol = grille[0].length;
serpent = new Element (5 ,5);
anneaux = new Element[100];
initSerpent();
}
public void initSerpent(){
anneaux[0] = new Element (5 ,5);
anneaux[1] = new Element (6, 5);
anneaux[2] = new Element (7, 5);
}
public boolean deplacer( char c )
{
Element s;
if ( c == 'N' || c == 'n' )
{
if (serpent.getLig() == 0)
{
if ( mur ( (serpent.getLig() + nbLig - 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() + nbLig - 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( (serpent.getLig() - 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() - 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'S' || c == 's' )
{
if (serpent.getLig() == nbLig - 1 )
{
if ( mur ( (serpent.getLig() - nbLig + 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() - nbLig + 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( (serpent.getLig() + 1), serpent.getCol()))
{
return false;
}
else
{
s = serpent;
serpent = new Element( (s.getLig() + 1),s.getCol());
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'O' || c == 'o' )
{
if (serpent.getCol() == 0)
{
if ( mur ( serpent.getLig(), (serpent.getCol() + nbCol - 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig(), (s.getCol()+ nbCol - 1));
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( serpent.getLig(), (serpent.getCol() - 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element(s.getLig(), (s.getCol() - 1));
deplacerS ( serpent, c );
return true;
}
}
}
else
{
if ( c == 'E' || c == 'e' )
{
if (serpent.getCol() == nbCol - 1 )
{
if ( mur ( serpent.getLig() , (serpent.getCol()- nbCol + 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig() ,(s.getCol() - nbCol + 1));
deplacerS ( serpent, c );
return true;
}
}
else
{
if ( mur ( serpent.getLig(), (serpent.getCol() + 1)))
{
return false;
}
else
{
s = serpent;
serpent = new Element( s.getLig(), (s.getCol() + 1));
deplacerS ( serpent, c );
return true;
}
}
}
}
}
}
return false;
}
public boolean mur( int lig, int col){
if ( grille[lig][col] == 'X' )
{
return true;
}
else
{
return false;
}
}
public String toString(){
String a = "";
for (int lig=0; lig<grille.length ; lig++ )
{
for (int col=0; col<grille[0].length ; col++ )
{
a += "" + grille[lig][col] + "";
}
a += "\n";
}
return a;
}
public int compteurPastille (){
p = 0;
for(int cpt = 0; cpt < nbLig; cpt++){
for(int cpt2 = 0; cpt2 < nbCol; cpt2++){
if ( grille[cpt][cpt2] == '*') { p++; }
}
}
return p;
}
public int compteurPastilleInit () {
p = 0;
for(int cpt = 0; cpt < nbLig; cpt++){
for(int cpt2 = 0; cpt2 < nbCol; cpt2++){
if ( grille[cpt][cpt2] == '*') { p++; }
}
}
nbElt = p;
return p;
}
public void deplacerS( Element serpent, char c ) {
Element tmp1;
Element tmp2;
char car =c;
tmp1 = serpent ;
tmp2 = anneaux[nbElt - 1];
for (int cpt = nbElt - 1; cpt > 0; cpt--){
anneaux[cpt] = anneaux[cpt-1];
grille[anneaux[cpt].getLig()][anneaux[cpt].getCol()] = 'o'; // L'erreur est ici
}
anneaux[0] = tmp1;
grille[tmp1.getLig()][tmp1.getCol()] = 'S';
grille[tmp2.getLig()][tmp2.getCol()] = ' ';
agrandirQueue ( car );
}
public boolean mangerPastille( char c){
switch ( c ){
case 'n' : if(grille[(serpent.getLig() - 1)][serpent.getCol()]== '*') { return true ; }
else { return false; }
case 's' : if(grille[(serpent.getLig() + 1)][serpent.getCol()]== '*') { return true ; }
else { return false; }
case 'o' : if(grille[(serpent.getLig())][serpent.getCol() - 1]== '*') { return true ; }
else { return false; }
case 'e' : if(grille[(serpent.getLig())][serpent.getCol() + 1]== '*') { return true ; }
else { return false; }
}
return false;
}
/*public void agrandirQueue( char c){
if ( mangerPastille( c )){
anneaux[nbElt] = new Element( anneaux[nbElt - 1].getLig(), anneaux[nbElt - 1].getCol() );
nbElt++;
}
}*/
public boolean partieFini ( ) {
boolean mordu = false;
for (int cpt = nbElt; cpt > 0; cpt--){
mordu = (anneaux[0] == anneaux[cpt]);
if( mordu ){
System.out.println ( "HAHAHA, vous avez PERDU !!!"); return true;
}
if( p == 0 ) { System.out.println ( "Bravo, vous avez GAGNE !!!"); return true; }
else { return false; }
}
return false;
}
}
_______________________________________________________________________
A tous c'est Le_mazo
Je ne peux pas tester car il me manque la classe Element, la méthode agrandirQueue et la méthode main.
Cependant si l'erreur est sur cette ligne ci :
Modifie cette ligne avec le code suivant, et dis moi ce que le message d'erreur affiche.
Cependant si l'erreur est sur cette ligne ci :
grille[anneaux[cpt].getLig()][anneaux[cpt].getCol()] = 'o';Cela signifie que anneaux[cpt]==null.
Modifie cette ligne avec le code suivant, et dis moi ce que le message d'erreur affiche.
try{ grille[anneaux[cpt].getLig()][anneaux[cpt].getCol()] = 'o'; }catch(NullPointerException e){ e.printStackTrace(); System.err.println("nbElt = "+nbElt+"\tanneaux.length = "+anneaux.length); System.err.println("cpt = "+cpt+"\tanneaux[cpt] = "+anneaux[cpt]); }
voici le message d'erreur:
java.lang.NullPointerException
____at Metier.deplacerS(Metier.java:236)
____at Metier.deplacer(Metier.java:71)
____at Controleur.main(Controleur.java:61)
nbElt = 5____________anneau.length = 100
cpt = 4 _____________anneaux[cpt] = null
java.lang.NullPointerException
____at Metier.deplacerS(Metier.java:245)
____at Metier.deplacer(Metier.java:71)
____at Controleur.main(Controleur.java:61)
________________________________________________________________
A tous c'est Le_mazo
java.lang.NullPointerException
____at Metier.deplacerS(Metier.java:236)
____at Metier.deplacer(Metier.java:71)
____at Controleur.main(Controleur.java:61)
nbElt = 5____________anneau.length = 100
cpt = 4 _____________anneaux[cpt] = null
java.lang.NullPointerException
____at Metier.deplacerS(Metier.java:245)
____at Metier.deplacer(Metier.java:71)
____at Controleur.main(Controleur.java:61)
________________________________________________________________
A tous c'est Le_mazo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question