Files
snake2025/README-fr.md
2025-05-20 13:13:49 +02:00

107 lines
4.0 KiB
Markdown

# Jeu Snake 2025
[![en](https://img.shields.io/badge/lang-en-red.svg)](https://git.esiee.fr/frequela/snake2025/-/blob/tp6/README.md)
[![fr](https://img.shields.io/badge/lang-fr-green.svg)](https://git.esiee.fr/frequela/snake2025/-/blob/tp6/README-fr.md)
Ce projet est un jeu snake basé sur une grille utilisant la bibliothèque graphique MLV. La grille représente un plateau de jeu avec des murs, des espaces vides, des fruits et un serpent. Le programme affiche la grille dans une fenêtre graphique et attend une interaction de l'utilisateur.
## Fonctionnalités
- Affiche une grille avec des murs, des espaces vides, des fruits et un serpent.
- Utilise la bibliothèque graphique MLV pour le rendu graphique.
- Assure que les blocs en dehors de la grille sont affichés en noir.
- Permet à l'utilisateur de quitter le programme en appuyant sur la touche ESC.
- Implémente un serpent dynamique utilisant une liste chaînée pour ses segments.
- Gère le mouvement du serpent en mettant à jour la position de la tête et en déplaçant tous les segments en conséquence.
- Permet au serpent de grandir lorsqu'il mange des fruits.
## Représentation de la Grille
- La grille est représentée comme un tableau 2D de caractères :
- `'w'` pour les murs.
- `' '` (espace) pour les espaces vides.
- `'f'` pour les fruits.
- `'s'` pour le serpent.
## Représentation du Serpent
- Le serpent est implémenté comme une liste chaînée de segments (`Position`), où :
- Chaque segment a des coordonnées `x` et `y`.
- Le pointeur `next` relie le segment suivant dans le serpent.
- Le mouvement du serpent est géré en :
- Ajoutant une nouvelle tête en fonction de la direction actuelle.
- Déplaçant tous les segments pour suivre la tête.
- Supprimant la queue sauf si le serpent mange un fruit.
## Dépendances
- GCC (GNU Compiler Collection)
- MLV (Mini Library for Visualization)
## Installation
### Installer MLV sur Ubuntu
1. Mettez à jour votre liste de paquets et installez les paquets requis :
```sh
sudo apt-get update
sudo apt-get install build-essential gcc make libmlv3-dev
```
### Compiler le Programme
1. Clonez le dépôt ou téléchargez le code source.
2. Naviguez vers le répertoire contenant le `Makefile`.
3. Exécutez la commande suivante pour compiler le programme :
```sh
make
```
Cela compilera les fichiers sources et créera un exécutable nommé `game` dans le répertoire `build`.
## Utilisation
1. Après avoir compilé le programme, exécutez l'exécutable :
```sh
./game
```
2. Une fenêtre s'ouvrira affichant la grille. Les blocs en dehors de la grille apparaîtront en noir. Utilisez les flèches directionnelles pour contrôler le serpent. Appuyez sur la touche ESC pour fermer la fenêtre.
## Logique du Jeu
- **Mouvement du Serpent** :
- Le serpent se déplace dans la direction actuelle, en mettant à jour la position de sa tête et en déplaçant tous les segments.
- Si le serpent mange un fruit, il grandit en ajoutant un nouveau segment sans supprimer la queue.
- Si le serpent entre en collision avec un mur ou lui-même, le jeu se termine.
- **Mise à Jour de la Grille** :
- La grille est mise à jour pour refléter la nouvelle position du serpent après chaque mouvement.
- Les fruits sont supprimés de la grille lorsqu'ils sont mangés par le serpent.
- **Condition de Victoire** :
- Le joueur gagne lorsque tous les fruits sur la grille sont collectés.
- **Condition de Défaite** :
- Le jeu se termine si le serpent entre en collision avec un mur ou lui-même.
## Nettoyage
Pour nettoyer les fichiers de compilation, exécutez :
```sh
make clean
```
Cela supprimera les fichiers objets et l'exécutable.
## Licence
Ce projet est sous licence GPLv3. Pour plus de détails, voir [Licence GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).
## Auteurs
- Alex Frequelin (light_emerald@aostia.com)
## Remerciements
- Adrien Boussicault et Marc Zipstein pour la bibliothèque MLV.
- ESIEE Paris pour les supports de cours et les conseils.