Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage tétris

    21 mars 2018 à 19:24:57

    Bonjour ;)

    Je viens vers vous tout simplement car je suis dans la finalisation de la programmation d'un jeu tetris en SDL.

    j'ai un soucis car j'aimerais afficher les pièces qui sont rentrés en collision sur mon écran.

    J'ai un tableau de 10*17 afin de représenter la carte avec des 1 la ou il y a des pièces qui sont tombé (le tableau fonctionne bien)

    Le soucis c'est que j'aimerais afficher ces pièces dans l'état "collision" sans pour autant créer une variable pour chaque bloc (sachant que je doit faire tourner tout ça sur raspberry)

    J'aimerais donc savoir si il est possible d'afficher ce tableau de pièce sans utiliser un nombre incalculable de variables.

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      21 mars 2018 à 22:32:59

      LucasMartin3 a écrit:

      J'ai un tableau de 10*17 afin de représenter la carte avec des 1 la ou il y a des pièces qui sont tombé (le tableau fonctionne bien)


      J'ai pas trop compris ton problème, mais ne mets pas des 1 la ou tu as des pièces, mets le numéro/type de la pièce (0 pour aucune pieces) style 1 pour la ligne  2 pour le cube, 3 pour le L ... (et si tu codes sur un char tu peux dire les 4 bits de poids forts indique le type de la piece, et les 4 bits de poids faible quel partie de la piece précisement)

      -
      Edité par breizhbugs 21 mars 2018 à 22:33:17

      • Partager sur Facebook
      • Partager sur Twitter
      ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
        21 mars 2018 à 22:49:58

        Ah oui pas bête merci.

        Pour le problème en fait j'aimerais afficher les pièces qui sont bloqués (donc totalement tombé) sans devoir créer une variable pour chaque bloc (car le plateau est composé de 10*17 blocs au total et chaque pièce est composé de 4 blocs) afin de simplifier le programmer et éviter de prendre toute la mémoire. (Genre par exemple si c'est possible de n'utiliser que 10 variables a faire apparaitre tellement vite qu'on ne puisse pas voir qu'il n'y en ai que 4)

        • Partager sur Facebook
        • Partager sur Twitter
          21 mars 2018 à 22:57:28

          Salut,

          Une fois que ta pièce se pose, elle n'a pas à être "stockée" : elle est imprimée dans ton tableau de 10*17.

          Il n'y a toujours qu'une seule pièce active à la fois.

          Voici un tetris que j'avais fait avec SDL1.2

          http://fvirtman.free.fr/recueil/02_05_01_tetris.c.php


          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            22 mars 2018 à 21:28:11

            Oh super merci pour ton programme, j'ai regardé et je vois que d'avance c'est beaucoup plus simplifié que moi ! (bon après je suis un débutant mais bon, je prend note ;) )

            Maintenant que tout fonctionnait normalement, j'ai un bout de programme qui fait des manières :/ : 

            Apparement, quand je détecte la collision, j'ai bien le "collision a 1" dans mon terminal mais il ne veut plus sortir de ma boucle FOR et fait monter le CPU a 52%. J'ai aucune idée de ce que me fait mon programme car en soit je ne fait pas de calcul en boucle dans ce FOR... Le problème vient bien d'ici j'ai essayé en mode debug et j'avoue que je suis complétement perdu la dessus ...

            OK problème reglé, j'avais oublié que je faisait le check du tableau du bas vers le haut, ce qui faisait que "j" était toujours a 9 donc faisait une boucle infini. Ca m'apprendra a ne pas mettre assez de commentaire !

            -
            Edité par LucasMartin3 22 mars 2018 à 21:31:45

            • Partager sur Facebook
            • Partager sur Twitter
              23 mars 2018 à 13:32:43

              Hello,

              LucasMartin3 a écrit:

              quand je détecte la collision, j'ai bien le "collision a 1" dans mon terminal mais il ne veut plus sortir de ma boucle FOR

              Bin tient ! Si tu as collision, tu met cols à 1 et i à 0. Tour suivant, dans le for(), i est bien > que -1, mais tu ne rentres plus dans le if() puisque col==1....

              -
              Edité par edgarjacobs 23 mars 2018 à 13:33:07

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                23 mars 2018 à 14:06:18

                Et dans ton 2ème for tu dis : tant que i > -1, sauf que tu décrémentes j et jamais i.
                • Partager sur Facebook
                • Partager sur Twitter

                Affichage tétris

                × 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