Probleme lecture grille

tatata -  
 tatata -
Bonjour a tous! Je suis actuellement en train de créer un jeu java et je me heurte depuis hier a un probleme que je n'arrive pas a identifier.
J''execute une fonction recursive qui va lire une grille, et lorsque je l'execute j'ai des resultat qui me semble illogiques, je vous ai mis la reponse que j'"ai en dessous du code, j'ai mis des marqueur " DROITE " "Gauche " dans mon code pour voir dans la reponse ou est l'erreur, de plus la recursivité s'arrete en bas de "Z" , je ne comprend pas pourquoi ce "return" alors qu'il y a d'autre possibilité. BREF, je vous laisse jeter un petit coup d'oeil et m'eclaire par votre savoir.
Merci beaucoup pour votre aide!
Si vous avez besoin d'info n'hesitez pas :)

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 */
public class Etude_grille1 {

    int colonne_prec = 0;
    int ligne_prec = 0;
    int longueur_chaine = 0;
    int monotonie_chaine = 0;
    int monotonie_case = 0;
    int score = 0;
    int tableau_score[][];
    int grille[][];
    int GrillesJeux[][];
    int score_chaine;
    int a = 0;

    Etude_grille1() {

        GrillesJeux = new int[10][11];



    }

    public int lecture_grille(Grilles G, int ligne, int colonne, int sens) {
// permet de passer d'une case à l'autre
        if (colonne < 10 && ligne < 11) {





            if (sens != 3) {

                // on trouve la case d'apres qui est bonne
                if (verification(G, ligne, colonne + 1) == true) {

                    System.out.println("Droite"+G.GrilleJeu[ligne][colonne]);
                    if (a != 0) {
                        comparaison(G, ligne, colonne, ligne_prec, colonne_prec);
                    } // on la compare a la precedente, et on verifie qu'on reviens pas sur case preceden
                    a++;
                    ligne_prec = ligne;
                    colonne_prec = colonne;

                    return lecture_grille(G, ligne, colonne + 1, 1);
                }
            }

            if (sens != 4) {
                if (verification(G, ligne + 1, colonne) == true) {
                    System.out.println("Haut"+G.GrilleJeu[ligne][colonne]);// on trouve la case d'apres qui est bonne
                    if (a != 0) {
                        comparaison(G, ligne, colonne, ligne_prec, colonne_prec);
                    } // on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente
                    a++;

                    ligne_prec = ligne;
                    colonne_prec = colonne;

                    return lecture_grille(G, ligne + 1, colonne, 2);
                }
            }


            if (sens != 2) {
                if (verification(G, ligne, colonne - 1) == true) {
                    System.out.println("Gauche"+G.GrilleJeu[ligne][colonne]);// on trouve la case d'apres qui est bonne
                    if (a != 0) {
                        comparaison(G, ligne, colonne, ligne_prec, colonne_prec);
                    }// on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente
                    a++;

                    ligne_prec = ligne;
                    colonne_prec = colonne;

                    return lecture_grille(G, ligne, colonne - 1, 4);
                }
            }

            if (sens != 1) {
                if (verification(G, ligne - 1, colonne) == true) {
                    System.out.println("Bas"+G.GrilleJeu[ligne][colonne]);// on trouve la case d'apres qui est bonne
                    if (a != 0) {
                        comparaison(G, ligne, colonne, ligne_prec, colonne_prec);
                    } // on la compare a la precedente, et on verifie qu'on reviens pas sur case precedente
                    a++;

                    ligne_prec = ligne;
                    colonne_prec = colonne;

                    return lecture_grille(G, ligne - 1, colonne, 3);


                    //  en meme temps on envoie les coordoonné pour savoir si c'est dans la meme sequence ou non
                }
            } else {
                System.out.println("PD4");
                ajoutscore(longueur_chaine);
                longueur_chaine = 0;

                //  FIN DU JEU!!!
            }
            System.out.println("PD");
            return score;




        }
        return score;
    }

    public void comparaison(Grilles G, int ligne, int colonne, int ligne_prec, int colonne_prec) {// pour comparer une case a l'autre 


        if (G.GrilleJeu[ligne][colonne] < G.GrilleJeu[ligne_prec][colonne_prec]) {
            monotonie_case = 1; // depart d'une chaine, ou on continue une chaine, donc pas de "nouvelle_chaine

        }

        if (G.GrilleJeu[ligne][colonne] > G.GrilleJeu[ligne_prec][colonne_prec]) {
            monotonie_case = 0;
        }

        if (monotonie_case == monotonie_chaine) // Si c'est la "meme" monotonie alors alors on  
        {
            monotonie_chaine = monotonie_case;

        } else {
            ajoutscore(longueur_chaine);
            longueur_chaine = 0;
            monotonie_chaine = monotonie_case;
        }


    }

    public int ajoutscore(int longueur_chaine) {
        int[] tableau_score = {1, 3, 5, 7, 9, 11, 15, 20, 25, 30, 35, 40, 50, 60, 70, 85, 100, 150, 300};
        score_chaine = tableau_score[longueur_chaine];
        score += score_chaine;
        return score;
    }

    public static boolean verification(Grilles G, int ligne, int colonne) {  // permet de voir si c'est une case de la grille ou non 

        if (G.GrilleJeu[ligne][colonne] != -1) {

            return true;
        } else {
            return false;
        }
    }
}

REPONSE:
Vous avez choisi de placer le jeton n° 31 en I01
A B C D E F G H I J K
10 15 21 4 1 11 8
9 28
8 14
7 16
6 19
5 2
4 14
3 22
2 24
1 18 11 6 17 1331


____________________________________________________________________________


Haut15
Haut21
Haut4
Haut1
Haut11
Droite8
Droite28
Droite14
Droite16
Droite19
Droite2
Droite14
Droite22
Droite24
Droite18

A voir également:

1 réponse

tatata
 
Voici la grille (elle etait mal passée dans l'anvoie du formulair
         A  B  C  D  E  F  G  H  I  J  K
   10 15 21  4  1 11 8                 
   9                       28               
   8                      14               
   7                    16               
   6                       19               
   5                      2               
   4                      14               
   3                       22               
   2                      24            
   1                      18 11  6 17 13 31

0