Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Sokoban

Sujet résolu
    23 avril 2006 à 11:09:42

    Je regardais un peu comment matéo gérait la fonction deplacerJoueur, et je vois ceci:


    if (carte[pos->x][pos->y - 1] == MUR) // S'il y a un mur, on arrête
        break;



    if (carte[pos->x][pos->y - 1] == MUR) // S'il y a un mur, on arrête
        break;


    et la ou je comprends vraiment pas:


    // Si on veut pousser une caisse, il faut vérifier qu'il n'y a pas de mur derrière (ou une autre caisse, ou la limite du monde)
    if ((carte[pos->x][pos->y - 1] == CAISSE || carte[pos->x][pos->y - 1] == CAISSE_OK) &&
        (pos->y - 2 < 0 || carte[pos->x][pos->y - 2] == MUR ||
        carte[pos->x][pos->y - 2] == CAISSE || carte[pos->x][pos->y - 2] == CAISSE_OK))
        break;


    Malgré la traduction en français je n'arrive pas trop à comprendre. Enfin je comprends bien le raisonnement mais le problème est que je ne vois pas ce qu'est les
    pos->y - 2
    ou les
    pos->y - 1
    Quelqu'un pourrait-il m'expliquer s'il vous plait ? ^^

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      23 avril 2006 à 11:31:53

      tu te souvient a la première fois qu'on a vus une régle de la maison d'IDE?

      Secret (cliquez pour afficher)
      Si tu ne comprends pas malgré avoir lu les commentaires, jette le tout!


      enfin,

      d'après m@téo21 :-°
      • Partager sur Facebook
      • Partager sur Twitter
        23 avril 2006 à 11:35:34

        barpil remballe tes réponses comme ceci stp.

        Est-ce que quelqu'un de sérieu pourrait m'expliquer svp ^^ ?

        Merci
        • Partager sur Facebook
        • Partager sur Twitter
          23 avril 2006 à 11:37:13

          les

          pos->y - 2


          ou les

          pos->y - 1


          correspond aux coordonnées en y (ordonnées) de la case

          la première ligne, avec les
          pos -> y - 1
          sert à vérifier qu'on est bien devant une caisse

          les lignes suivantes vont vérifier que derrière cette caisse, il y a bien du vide derrière pour qu'on puisse la pousser
          la case que l'on vérifie est derrière, donc on lui enlève encore une coordonée en y, ce qui fait
          pos -> y - 2


          j'ai essayé d'être clair, redemande si t'as pas compris
          • Partager sur Facebook
          • Partager sur Twitter
            23 avril 2006 à 11:37:18

            Ici le perso est en x,y. Et tu es dans le code pour "monter".
            Donc M@teo regarde ce qu'il y a dans le case du dessus (en x,y-1). Si c'est une caisse, alors il va falloir la pousser. Pour pouvoir la pousser il faut que la case apres la caisse soit libre, cad la case en (x,y-2).
            • Partager sur Facebook
            • Partager sur Twitter
              23 avril 2006 à 12:15:40

              Si tu ne comprend pas très bien la flèche (->) va faire un petit tour sur les pointeur de structure:
              Clique ici

              Moi même je l'avais oublier lorsque je lisais le TP du sokoban :euh: !!
              • Partager sur Facebook
              • Partager sur Twitter
                23 avril 2006 à 12:21:25

                Niquel merci beaucoup à dark_ouindu Kayl, vos explications m'ont aidé ^^ et DjKill c'est gentil aussi merci mais j'avais compris ce qu'était la flèche mais tu as bien fait d'écrire ca biensur on ne sait jamais ^^ En tout cas merci de m'avoir fait comprendre ^^
                • Partager sur Facebook
                • Partager sur Twitter

                Problème Sokoban

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown