Explication une partie du code pour Snake C++
Fermé
guex
-
Modifié par Whismeril le 23/04/2015 à 18:48
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 8 mai 2015 à 16:20
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 8 mai 2015 à 16:20
A voir également:
- Explication une partie du code pour Snake C++
- Voici du code ascii : - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
1 réponse
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
8 mai 2015 à 16:20
8 mai 2015 à 16:20
Il faudrait nous expliquer ce que tu ne comprends pas.
Le code consiste à maintenir une matrice appelée main, de taille 22*74 qui stocke l'état de chaque case du plateau de jeu. Sa valeur peut être vue comme un caractère ou un entier
- @ correspond à une pomme à manger
- o correspond à un morceau du serpent
- * correspond à un mur droit ou bas
- ' ' correspond à une case vide
La fonction check convertit un code touche en une direction (valeur comprise entre 0 et 3) qui correspond à la direction dans laquelle avance la tête du serpent.
La variable past stocke pour chaque case du serpent un couple qui permet de retrouver dans quelle direction le serpent a marché depuis le début de la partie au pastCounter-ième pas du serpent. Concrètement faire avancer le serpent consiste à effacer son dernier élément puis afficher sa tête. Il suffit donc de "retarder" (= ne pas augmenter) pastCounter pour donner l'illusion que le serpent s'allonge. Note que ce tableau est de taille 1000, ce qui suppose que le jeu ne dure pas plus de 1000 pas de serpents (sans quoi, le programme provoquera une erreur mémoire, qui se soldera par une erreur mémoire ou un comportement imprévisible).
Le but est de corriger cette matrice à chaque "pas" du serpent et la redessiner à l'écran (fonction draw).
Je t'invite aussi à utiliser un debugger, qui te permettra de contrôler les valeurs des différentes variables et contrôler l'avancement du jeu (tu peux par exemple mettre un breakpoint dans la fonction draw pour que le déroulement se mette en pose à chaque pas du serpent).
Bonne chance
Le code consiste à maintenir une matrice appelée main, de taille 22*74 qui stocke l'état de chaque case du plateau de jeu. Sa valeur peut être vue comme un caractère ou un entier
- @ correspond à une pomme à manger
- o correspond à un morceau du serpent
- * correspond à un mur droit ou bas
- ' ' correspond à une case vide
La fonction check convertit un code touche en une direction (valeur comprise entre 0 et 3) qui correspond à la direction dans laquelle avance la tête du serpent.
La variable past stocke pour chaque case du serpent un couple qui permet de retrouver dans quelle direction le serpent a marché depuis le début de la partie au pastCounter-ième pas du serpent. Concrètement faire avancer le serpent consiste à effacer son dernier élément puis afficher sa tête. Il suffit donc de "retarder" (= ne pas augmenter) pastCounter pour donner l'illusion que le serpent s'allonge. Note que ce tableau est de taille 1000, ce qui suppose que le jeu ne dure pas plus de 1000 pas de serpents (sans quoi, le programme provoquera une erreur mémoire, qui se soldera par une erreur mémoire ou un comportement imprévisible).
Le but est de corriger cette matrice à chaque "pas" du serpent et la redessiner à l'écran (fonction draw).
Je t'invite aussi à utiliser un debugger, qui te permettra de contrôler les valeurs des différentes variables et contrôler l'avancement du jeu (tu peux par exemple mettre un breakpoint dans la fonction draw pour que le déroulement se mette en pose à chaque pas du serpent).
Bonne chance