Petit problème simple

Résolu
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008 - 1 mai 2008 à 16:44
extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 - 2 mai 2008 à 18:23
Bonjour tout le monde, en cette belle journée de 1er Mai (fête du travail ne l'oublions pas) j'ai une bonne question à vous poser.
Petit résumé de mon programme:
Pour faire simple, je dois créer un jeu de mots mêlés, pour cela j'ai créer une matrice (grille) de 8 par 8 ainsi que tout les postionnements possibles des mots de 4 a 8 lettres
(pour ce que ca interesse il y a 698 positionnements possibles)
exemple pour le positionnement

public void Diag6_0(String word){
for (int i=0; i<6; i++){
grille.getMatrice()[i][i]=word.charAt(i);
    }
}
(vraiment très simple) et j'aimerai pouvoir l'appeler dans mon code pour au moins placer un mot dans ma grille; donc je me suis dis il faut faire un truc du style

alignement.Diag6_0("calcul"); //alignement est la classe ou j'ai mis les positions
//erreur      :::::     java.lang.NullPointerException   :::::::
for(int i=0;i<8;i++){
    for(int j=0;j<8;j++){
System.out.print(grille.getValue(i,i)+"   ");
}
System.out.println();
System.out.println();

et la "pof"  ca marche pas ... pas de matrice dans ma console et une belle erreur mais j'aimerai savoir comment faire pour l'enlever ....;je trouve pas c'est relativement embêtant si vous pouviez m'aider ca serai sympatique meci d'avance...

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!

9 réponses

extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 2
2 mai 2008 à 12:59
Salut,

// class d'alignement

package Camoufles;
public class alignement {
static protected Grille grille = new Grille(); <=== Remplace par static public Grille grille = new Grille();
    public void Diag6_10(String word){
        int k=1;
        int j=2;
        for(int i=0;i<6;i++){
            grille.getMatrice()[k][j]=word.charAt(i);
            k++;
            j++;
        }
    }
// class de lancement de ma grille
public class lancement {

static protected String cal = "calcul";
static protected Grille grille = new Grille(); <== Enlève cette ligne
static protected Mots mots;
static protected alignement ali;

    public static void main(String[] args) {
        ali.Diag6_10(cal);   <----------------- :::  (lancement.java:12) ::::
            for (int i=0;i<8;i++){
            for (int j=0;j<8;j++){
            System.out.print(grille.getValue(i,j)+"  "); <== Et ici tu ne dois pas lire la bonne grille mets : ali.grille.getValue(i,j) pour voir
            }
            System.out.println("");
            System.out.println("");
  }}}

A++ extraman1
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008
1 mai 2008 à 16:50
A oui juste une petite chose dans mon code je me suis tromper il faut changer une ligne par ca
                System.out.print(grille.getValue( i , j )+"   ");

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
2 mai 2008 à 08:50
Salut,
pourrais renvoyer ton erreur exacte, pour savoir sur quoi repose ton nullpointerexception. Si cela se trouve, au moment où tu appelles ta méthodes Diag6_0, soit la variable alignement est à null, soit ta variable grille est à null, ou encore ta variable retournée par getGrille().

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008
2 mai 2008 à 12:27
je vais remettre une parti du code pour vous montrer mon problème
// class d'alignement

package Camoufles;
public class alignement {
static protected Grille grille = new Grille();
    public void Diag6_10(String word){
        int k=1;
        int j=2;
        for(int i=0;i<6;i++){
            grille.getMatrice()[k][j]=word.charAt(i);
            k++;
            j++;
        }
    }
// class de lancement de ma grille
public class lancement {

static protected String cal = "calcul";
static protected Grille grille = new Grille();
static protected Mots mots;
static protected alignement ali;

    public static void main(String[] args) {
        ali.Diag6_10(cal);   <----------------- :::  (lancement.java:12) ::::
            for (int i=0;i<8;i++){
            for (int j=0;j<8;j++){
            System.out.print(grille.getValue(i,j)+"  ");
            }
            System.out.println("");
            System.out.println("");
  }}}
mon erreur est : Exception in thread "main" java.lang.NullPointerException
    at Camoufles.lancement.main(lancement.java:12)

je trouve pas .... pouvez vous m'aider ???

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 2
2 mai 2008 à 12:40
Salut,

Tu n'initialise pas ali.
Il manque ali = new alignement();
juste avant => ali.Diag6_10(cal);

A++ extraman1
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008
2 mai 2008 à 12:50
Merci mainetnant je n'est plus d'erreur c'est sur mais j'ai un autre soucis ... mon mot ne s'affiche pas ... je sais pas pourquoi et c'est assez enervant, je n'obtient aucune erreur c'est normal y'en a pas ... pourquoi ca ne me marque pas mon mot dans la grille ...
si vous pouviez m'aidr aussi sur ce point là ça serait vraiment sympa
je remet ici un exemple d'alignement

public void Vert7_0(String word){
for(int i=0;i<7;i++){
    grille.getMatrice()[i][0]=word.charAt(i);
}}

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008
2 mai 2008 à 13:39
Là je dis que tu es vraiment très fort ... épatant même je vais enfin pouvoir continué mon code (en plus jesuis a la bourre je doit rendre mon projet le 12 mai avant minuit sachant qu'à partir de lundi j'ai partiels
certes juste comme ça une petite question  tu fais quoi comme métier  (ou études)???

la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
Jésus Christ est né 1940 ans avant chuck norris (quand la modestie nous tient)
wamdeus Messages postés 46 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 4 décembre 2008
2 mai 2008 à 16:19
Re tout le monde me voici avec un nouveau problème ; je suis toujours avec mon problème de grille;
j'aimerai créer une fonction de remplissage pour mettre des lettres au hasard dans ma grille donc je me suis dis que je vais faire un truc du genre
//
public void Remplissage(){
for(int i=0;i<8;i++){
    for(int j=0;i<8;i++){
    if (grille.getMatrice()[i][j]=""){ // Error ::::: cannot convert from char to boolean
    grille.getMatrice()[i][j]=RandomRemplissage; //Random c'est un lettere au hasard ::
}}}}
je me dis c'est normal qu'il puisse pas convertir boolean et char ... alors comment comparer .??? avec un switch ?? déja fait; ca marche pas non plus
//
switch(grille.getMatrice()[i][j]){
case "" :   grille.getMatrice()[i][j]=RandomRemplissage
break;

   
Je ne sais pas quoi faire comment vous feriez vous ??? pas comme cela j'imagine
la seul chose qui arrive a la cheville de chuck norris ce sont ces chaussettes!!!
extraman1 Messages postés 103 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 26 décembre 2009 2
2 mai 2008 à 18:23
Salut,

Il manque pas un = dans ton if
Toi tu as mis => if (grille.getMatrice()[i][j]="")
essaye => if (grille.getMatrice()[i][j] == '')

extraman1
Rejoignez-nous