Skip to content
Snippets Groups Projects
Commit 1797711a authored by ERKEN EFE's avatar ERKEN EFE
Browse files

:pencil: DOC: Add documentation to main.c

Added documentation and commentary to main.c
parent a7a9947f
No related merge requests found
/**
* @file main.c
* @author Efe ERKEN (efe.erken@etu.unistra.fr)
* @brief Fichier source centrale qui fait marcher le jeu
* @version 0.1
* @date 2022-11-19
*
* @copyright Copyright (c) 2022
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "grid.h"
#include "player.h"
/**
* @brief La fonction qui réuni toutes les autres fonctions et structures
*
* @return int
*
* @pre -
* @post -
*
* Cette fonction est le coeur du jeu Sokoban. Elle lit un fichier contenant un niveau
* de jeu, elle charge ce niveau dans la structure appropriée @c grid. Elle affiche le
* niveau chargé dans le terminal. Elle lit les entrées au clavier de l'utilisateur
* pour bouger le joueur dans le niveau.
*/
int main()
{
// on charge le niveau de jeu depuis un fichier
grid *level = init_level("levels/level1.txt");
char entry = '\0';
bool run = true;
char entry = '\0'; // on initialise le stockage pour les entrées de l'utilisateur
bool run = true; // on initialise l'interrupteur de boucle
// on continue le jeu tant que l'utilisateur n'a pas appuyé sur 'q'
while (run)
{
// on affiche les messages sur comment interagir
printf("\nAppuyez sur \"q\" pour quitter\n");
printf("Appuyez sur \"h, j, k, l\" pour vous déplacer\n\n");
// on affiche le niveau de jeu
display(level);
printf("Votre choix : ");
// on récupère l'entrée de l'utilisateur
scanf(" %c", &entry);
// on décide ce qu'on va faire en fonction de l'entrée
switch (entry)
{
// on quitte le jeu si l'entrée est 'q'
case 'q':
run = false;
break;
// on bouge le jouer dans le sens correspondant si l'entrée est 'h', 'j', 'k' ou 'l'
case 'h':
case 'j':
case 'k':
case 'l':
move_player(level, entry);
break;
// on affiche un message si l'entrée n'est pas définie dans le programme
default:
printf("---> Cette touche n'a pas de fonctionnalité\n");
}
}
// on désalloue la structure qui stockait le niveau
free_level(level);
return EXIT_SUCCESS;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment