Projet2 class plateau( premier ligne occupe )

Voir le sujet précédent Voir le sujet suivant Aller en bas

Projet2 class plateau( premier ligne occupe )

Message  didi le Ven 03 Avr 2009, 22:45

bounjour à tous
j'ai une problème dans ma class plateau (method premier ligne occupée )

quelqu'un peut m'aider ??

Code:
 public int premiereLigneOccupe(NordSud point)  {
                int ligne = 0;
                boolean nonTrouve = true;

                if (point == NordSud.SUD)      {
                System.out.println("dans le sud ");
                        while (nonTrouve == true)      {
                                for (int i = 0;i <= plateaux.length - 1;i++)    {
                                        if (plateaux[ligne][i] != null) {
                                                nonTrouve = false;      }
                                        ligne = ligne + 1;
                                }
...................
System.out.prinln(ligne);
return ligne ;
}


ça affiche bien " dans le sud "
mais il donne le resultat ligne = 6
parcontre quand je change le valeur de l'increment c-à-d
ligne = ligne + 0;
ça fonction

je ne comprends pas pourquoi ???
Question Question

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: Projet2 class plateau( premier ligne occupe )

Message  Dj x-fuse le Ven 03 Avr 2009, 23:17

Code:

public int premiereLigneOccupe(NordSud point)  {
                int ligne = 0; // on commence avec la ligne en bas
                boolean nonTrouve = true; // on n'a rien trouvé

                if (point == NordSud.SUD)      { // si le joueur est SUD alors
                System.out.println("dans le sud ");
                   while (nonTrouve == true)      { // tant qu'on trouve rien
                                for (int i = 0;i <= plateaux.length - 1;i++)    { // pour i de 0 à 5 faire
                                /*    /!\ => plateau.length -1 vaut aussi si on arrive avec
                                   la valeur en dessous
                                   Du coup, tu peux écrire :
                                   (int i=0; i<taleau.length; i++) */
                                        if (plateaux[ligne][i] != null) { // le problème ce pose ici
                                                nonTrouve = false;      }
                                        ligne = ligne + 1;
                                /*    Avand de finir la première ligne (check de chaque colonne),
                                   tu demandes de passer à la ligne suivante.
                                   du coup, tu ne vérifies pas toute la ligne.
                                */
                               
                                }
                  System.out.prinln(ligne);
                  return ligne ;
            }

Outre quelques explications, j'aurais écrit la première partie de cette fonction différemment.

Voici ma logique :

Code:

  public int premiereLigneOccupee(NordSud point){
        ok : booléen
        i,j : entier
        si point = NORD alors
           tant que NON ok faire
              pour i de 0 à plateau.taille() faire
                 si plateau[j][i] != null)
                        ok <- vrai
                    }
                }
                j = j+1;
            }
        }sinon{
           on inverse l'opération pour SUD :)
        }
        return j; // j = le numéro de la ligne occupée.
    }


@ les tordus du groupe 1221 / 1222 : Bonnes vacances Very Happy

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum