Projet : labyrinthe

Sénario du Jeu

Un joueur doit parcourir un labyrinthe avec des pièges.

Un joueur a une jauge de vie.

Le joueur peut aller à gauche/droite/haut/bas.

  • pièges => le joueur retourne au début du labyrinthe, le joueur perd des points de vie …
  • potions => il gagne des points de vie, des raccourcis …

Consignes Obligatoires

  • Utiliser un Arbre pour le parcours du labyrinthe
  • Avoir des niveaux de jeu de plus en plus dure (plus de pièges, labyrinthe plus grand …)
  • Gérer le niveau de vie d’un joueur
  • Élaborer les bonnes structures de données
  • Vérifier qu’un labyrinthe a une entrée et une sortie
  • Utiliser le clavier pour se déplacer dans labyrinthe
  • Lire des fichiers contenant les matrices pour les labyrinthes

Exemple de représentation du labyrinthe

Exemple 1

Dans le terminal

* * *   *
*       *
*   * * *
*   * * *

Dans sa représentation matricielle

\[\begin{bmatrix} -1 & -1 & -1 & 1 & -1 \\ -1 & 0 & 0 & 0 & -1 \\ -1 & 0 & -1 & -1 & -1 \\ -1 & 2 & -1 & -1 & -1 \end{bmatrix}\]
  • 1 -> pour indiquer le début du labyrinthe
  • 2 -> pour indiquer la fin du labyrinthe

Dans sa représentation d’arbre

Exemple 2

Dans le terminal

*  *  *  *  *  *  *  *  *  *
*                          *
*     *  *  *  *     *  *  *
      *  *  *  *     *  *  *
*     *              *  *  *
*           *  *     *  *  *
*     *  *  *  *     *  *  *
*  *  *  *  *  *     *  *  *
*  *  *                    *
*  *  *     *  *  *  *  *  *

Dans sa représentation matricielle

\[\begin{bmatrix} -1 & -1 & -1 & -1 & -1 & -1 & -1 & -1 & -1 & -1 \\ -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -1 \\ -1 & 0 & -1 & -1 & -1 & -1 & 0 & -1 & -1 & -1 \\ 1 & 0 & -1 & -1 & -1 & -1 & 0 & -1 & -1 & -1 \\ -1 & 0 & -1 & 0 & 0 & 0 & 0 & -1 & -1 & -1 \\ -1 & 0 & 0 & 0 & -1 & -1 & 0 & -1 & -1 & -1 \\ -1 & 0 & -1 & -1 & -1 & -1 & 0 & -1 & -1 & -1 \\ -1 & -1 & -1 & -1 & -1 & -1 & 0 & -1 & -1 & -1 \\ -1 & -1 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & -1 \\ -1 & -1 & -1 & 2 & -1 & -1 & -1 & -1 & -1 & -1 \end{bmatrix}\]

Dans sa représentation d’arbre

Placements aléatoires

Pièges

À vous de créer au minimum 3 types de pièges différents (pas forcément tous en même temps sur la même grille)

Potions

À vous de créer au minimum 3 types de potions différentes (pas forcément tous en même temps sur la même grille)

Les niveaux

  • Plus le labyrinthe est grand plus le niveau est difficile
  • Il y a toujours qu’une seule solution pour résoudre le labyrinthe

Utilisation des flèches dans le terminal

arrow.c

source pour l’élaboration du programme

Organisation - deadlines

  • 3-4 personnes par groupe : Veuillez renseigner votre groupe ici
  • Date de rendu : Vendredi 19 Janvier 2024 23h59
  • Oral de 15 min : Jeudi 25 Janvier 2024 de 8h à 12h15
    • Présentation de votre jeu + démonstration => 10 min
    • Questions => 5 min
  • rendu git (OBLIGATOIRE) avec un readme associé afin d’utiliser le jeu
  • Indiquer votre lien git ici (sur teams)
  • note finale : projet + présentation + rapport

Exemple de Rapport

  1. Introduction
  2. Répartition des tâches
  3. Planning
    1. Planning prévisionnel
    2. Planning réél
  4. Présentation du jeu (règles, pièges, potions …)
  5. Choix de programmation
  6. Bilan personnel pour chaque membre du groupe

Bonus

  • Génération aléatoire de grille de labyrinthe
  • Résolution du labyrinthe via un algorithme A*