Cyril Rabat


TP n°3 : les fichiers bas-niveau (suite)

 Télécharger en PDF

   Le but de ce TP est de réaliser une application en relation avec les fichiers bas-niveau.

 

Pour rappel, cette application correspond au premier mini-projet obligatoire.

Jeu du démineur

   Le but du projet est de réaliser un jeu de démineur "amélioré" où le joueur doit découvrir toutes les cases qui ne contiennent pas de bombe; cela lui rapporte 1 point à chaque fois. Certaines cases peuvent contenir des trésors lui rapportant des points supplémentaires. Un éditeur permet de créer une carte (de tailles variables) où le concepteur place les bombes et les trésors. Une application de jeu permet ensuite à un utilisateur de jouer sur cette carte.

   L'éditeur prend en arguments la largeur et la hauteur de la carte, ainsi que le nom du fichier contenant la carte. Si un seul argument est spécifié, il s'agit d'une carte existante que l'on souhaite modifier (ouverture). Le concepteur clique simplement sur une case pour ajouter soit une bombe, soit un trésor.

   Le fichier d'une carte contient :

  • largeur (unsigned char) et hauteur (unsigned char) de la carte
  • nombre de bombes (unsigned char) puis positions des bombes (2 unsigned char par bombe)
  • nombre de trésors (unsigned char) puis positions des trésors (2 unsigned char par bombe)

   L'application de jeu prend en arguments le mode (nouvelle partie ou continuer une partie) et un fichier de partie. Si c'est une nouvelle partie, le fichier est créé. Sinon, le fichier est simplement ouvert. L'utilisateur peut ensuite cliquer à l'endroit où il le souhaite. Il peut arrêter et relancer l'application quand il le souhaite, la progression étant conservée dans le fichier de partie. Lorsque l'utilisateur clique sur une case, le fichier est modifié immédiatement (et uniquement les données nécessaires). Le fichier ne doit jamais être chargé intégralement : les données sont lues au fur-et-à-mesure dans le fichier.

   Le fichier de partie contient :

  • largeur (unsigned char) et hauteur (unsigned char) de la grille
  • cases (ligne par ligne, un unsigned char par case) dont les valeurs sont :
    • 0 à 9 si découvert (ce qui est égal au nombre de bombes autour)
    • 10 si c'est une case vide non découverte
    • 11 pour une mine (non découverte !)
    • 12 pour un trésor non découvert
  • nom du fichier contenant la carte (unsigned char pour la taille et un char par caractère)
  • score (unsigned int)
  • nombre de coups joués (unsigned int) et liste des coups joués (deux unsigned char par coup)

Recommandations

    Il est crucial pour chaque binôme de définir rapidement les fonctionnalités minimales à développer pour leur projet : si le projet rendu contient toutes les fonctionnalités demandées mais qu'il ne s'exécute pas, vous serez pénalisés. Dans tous les cas, l'ajout de fonctionnalités ne devra pas cacher le mauvais fonctionnement des fonctionnalités de base.

   Il est attendu que les étudiants fassent un effort particulier sur la conception de l'application, aussi bien en termes de programmation système que de programmation C. Par exemple, les structures doivent être déclarées dans des fichiers différents, la fonction principale ne doit pas contenir tout le code, les appels systèmes doivent être vérifiés, etc. Un makefile sera obligatoirement rendu avec le code, ainsi qu'un fichier _lisezMoi.txt indiquant comment utiliser votre application.

Outils


Version de cette page Samedi 3 Février 2018

© Cyril Rabat 2018

Connexion

Mot de passe perdu

Dernières nouvelles

16/11/2018 Les inscriptions pédagogiques pour le second semestre auront lieu à partir de la semaine prochaine. Vous serez prochainement contacté(e) par vos tuteurs.
16/11/2018 Du tutorat de consolidation pour MA0102 est prévu dans la semaine du 10/12. Les étudiants intéressés doivent contacter le responsable de la formation.
09/11/2018 Le planning des examens (EET) est disponible sur la page dédiée. Pour rappel : pas d'EET en L1 et semaine d'examens pour les L2 et L3 en semaine 51 (calendrier anticipé).
01/10/2018 Les emplois du temps sont maintenant accessibles depuis la page de la scolarité.

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-326-91-33-81

Fax :
+33-326-91-33-97

Facebook :
lien Facebook direct