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.
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
** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
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)
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 !
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
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Et dans ton 2ème for tu dis : tant que i > -1, sauf que tu décrémentes j et jamais i.
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.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent