5.5 Listes contigües 2/2
-
Une liste contigüe permet d’implanter files et piles.
- Implantation d’une file :
-
ajout en début de liste, suppression en fin de liste ;
- opérations enfiler, défiler, premier, taille ;
- implantation peu efficace (enfiler).
- Exercice "jeu classique Centipède" :
-
créez un répertoire Projets/Centipede ;
- créez deux sous-répertoires File et Parcourir ;
- écrivez les trois fichiers de configuration makefile ;
- récupérez la bibliothèque graphique GraphiqueJeux.tgz ;
- implantez la bibliothèque de file à base de liste contigüe dynamique ;
- réalisez le programme principal :
-
définissez une liste contigüe pour stocker les positions des champignons ;
- chargez les lutins du mille-pattes et du champignon ;
- écrivez une fonction pour obtenir des positions aléatoires pour les champignons ;
- écrivez une fonction pour effacer l’écran et afficher les champignons ;
- placez le mille-pattes au hasard mais en évitant qu’il sorte immédiatement du plateau ;
- définissez une file de positions pour représenter le mille-pattes ;
- enfilez la position initiale de la tête du mille-pattes dans la file ;
- écrivez la boucle de gestion du mille-pattes :
-
si le mille-patte ne s’étire pas défilez son dernier segment et effacez le ;
- remplacez l’ancienne tête du mille-patte par le segment de corps adapté ;
- enfilez la nouvelle position de la tête du mille-patte et affichez la ;
- suivant les touches pressées, calculez la nouvelle position du mille-pattes ;
- vérifiez, par la couleur, si la nouvelle case est vide ou non :
-
case vide : rien de particulier à faire ;
- case avec champignon : incrémenter la longueur du mille-patte ;
- autre case non vide : le mille-patte est mort ;
- case hors tableau : le mille-patte est mort.
- n’oubliez pas de mettre la surface graphique à jour ;
- si le dernier champignon est boulotté passez au niveau suivant ;
- quand le mille-pattes meurt mettez à jour le fichier des scores :
-
le score du joueur correspond au nombre de champignons avalés ;
- la structure des scores comprend un pseudo et le nombre ;
- les structures des scores sont stockés dans un fichier binaire ;
- demandez au joueur sont pseudo et cherchez le dans le fichier ;
- s’il existe modifiez la structure déjà écrite dans le fichier ;
- s’il n’existe pas ajoutez une structure dans le fichier binaire ;
- affichez, dans l’ordre, les dix premiers scores avec les pseudos.
- Implantation d’une pile :
-
ajout en fin de liste, suppression en fin de liste ;
- opérations empiler, dépiler, sommet, taille ;
- implantation efficace (temps constant).
- Exercice "aider la souris à sortir du labyrinthe" :
-
créez un répertoire Projets/Souris ;
- créez deux sous-répertoires Pile et Parcourir ;
- écrivez les trois fichiers de configuration makefile ;
- récupérez la bibliothèque graphique Graphique.tgz ;
- implantez la bibliothèque de pile à base de liste contigüe dynamique ;
- réalisez le programme principal :
-
chargez l’image du labyrinthe avec la bibliothèque fournie ;
- appliquez l’algorithme de la main gauche (garder un mur à gauche) ;
- il est conseillé de créer une structure pour stocker la position ;
- marquez votre passage en changeant la couleur du sol ;
- empilez les cellules visitées ;
- si vous repassez sur une cellule déjà visitée ...
- dépilez les cellules jusqu’à trouver la cellule courante ;
- arrivé à la sortie, affichez le chemin direct.