diff --git a/Makefile b/Makefile index c9fad36..8a0224f 100644 --- a/Makefile +++ b/Makefile @@ -1,38 +1,37 @@ -Snake : main.o jeu.o grille.o menu.o pomme.o serpent.o timer.o - gcc -lgraph -o Snake main.o jeu.o grille.o menu.o pomme.o serpent.o timer.o +### VARIABLES ### -main.o : ./src/main.c ./include/main.h ./include/menu.h ./include/jeu.h +CC = gcc +CFLAGS = -lgraph -ansi +SRCDIR = ./src +HDIR = ./include +ODIR = ./out +OFILES = $(subst src/,out/,$(subst .c,.o,$(shell find $(SRCDIR)/ -type f))) +EXE = game - gcc -ansi -pedantic -c ./src/main.c +### BUT PAR DEFAUT ### -jeu.o : ./src/jeu.c ./include/grille.h ./include/serpent.h ./include/pomme.h ./include/jeu.h ./include/menu.h ./include/timer.h +but : $(EXE) - gcc -ansi -pedantic -c ./src/jeu.c +### REGLES ESSENTIELLES ### -grille.o : ./src/grille.c ./include/grille.h +$(ODIR)/%.o : $(SRCDIR)/%.c + @mkdir -p $(@D) + $(CC) -c $< -o $@ - gcc -ansi -pedantic -c ./src/grille.c +$(EXE) : $(OFILES) + $(CC) $(CFLAGS) -o $(EXE) $(OFILES) -menu.o : ./src/menu.c ./include/menu.h ./include/main.h +### REGLES OPTIONNELLES ### - gcc -ansi -pedantic -c ./src/menu.c +run : $(EXE) + ./$(EXE) -pomme.o : ./src/pomme.c ./include/grille.h ./include/serpent.h +clean : + -rm -rf $(ODIR) - gcc -ansi -pedantic -c ./src/pomme.c +mrproper : + clean $(but) -serpent.o : ./src/serpent.c ./include/serpent.h ./include/main.h ./include/timer.h +### BUTS FACTICES ### - gcc -ansi -pedantic -c ./src/serpent.c - -timer.o : ./src/timer.c ./include/timer.h - - gcc -ansi -pedantic -c ./src/timer.c - -clean : - -rm -f main.o jeu.o grille.o menu.o pomme.o serpent.o timer.o - -run : - ./Snake - -.phony : clean \ No newline at end of file +.PHONY : but run clean mrproper diff --git a/README.md b/README.md index ad214a6..a6b8465 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,54 @@ Cette version du jeu [Snake](https://fr.wikipedia.org/wiki/Serpentes) a été réalisée dans le cadre du [SAÉ1.01 "Implémentation d'un besoin client"](http://www.iut-fbleau.fr/sitebp/pt11/11_2023/UWO9O2WOJ7JETN3P.php) lors du premier semestre de BUT 1 à l'IUT de Fontainebleau. -## Work in progress... +## Lancement du programme +### Compilation +> Installer au préalable les [dépendances nécessaires](#dépendances) au fonctionnement du programme + +Utiliser la commande suivante pour compiler le programme : +```bash +make +``` +#### Méthode n°1 (recommandée) : Compiler et lancer le programme avec Make +Utiliser la commande suivante pour compiler puis lancer le programme : +```bash +make run +``` + +#### Méthode n°2 : Compiler puis lancer le programme +Une fois la [compilation du programme](#compilation) faite, exécuter le programme à l'aide de la commande suivante : +```bash +./game +``` + + +## Comment jouer ? +### Les touches +- Flèches directionnel : se déplacer en haut, en bas, à droite, à gauche +- Espace : Mettre le jeu en pause +- Échap : Quitter la partie en cours + + +## Fonctionnalités + +### Fonctionnalités exigées + - Mise en pause du jeu lorsque la touche Espace est pressée + - Quitter la partie en cours lorsque la touche Échap est pressée + - Affichage du score pendant et après la partie + - Affichage du temps pendant et après la partie + +### Fonctionnalités additionnelles + +#### 4 Modes de jeu différents +- Mode classique : Affichage d'une seule pomme +- Mode MultiPomme : Affichage de 5 pommes +- Mode PartieRapide : Affichage de 25 pommes et accélération du serpent en fonction du score +- Mode Accélération : Affichage d'une seule pomme et accélération du serpent en fonction du score + +#### Menues uniques +Nous avons ajouter des menues afin de faciliter l'expérience utilisateur ! + + ## Dépendances ### Bibliothèque graphique de l'IUT de Fontainebleau @@ -13,4 +60,4 @@ Cette version du jeu [Snake](https://fr.wikipedia.org/wiki/Serpentes) a été r - Programme réalisé par Moncef STITI (@stiti) et Marco ORFAO (@orfao) ## Remerciements - - Lyanis Saoudi (@saoudi) pour son explication sur la réalisation d'un readme.md \ No newline at end of file + - Lyanis Souidi pour son explication sur la réalisation d'un readme.md \ No newline at end of file