66 int main(
int argc,
char *argv[])
68 if (argc == 1 || (argc == 2 && strcmp(argv[1],
"--console") == 0))
76 else if (argc == 2 && strcmp(argv[1],
"--sdl2") == 0)
87 printf(
"Utilisation :\n");
88 printf(
"./sokoban [--console|--sdl2]\n");
void exit_routine(grid *G)
Fonction qui s'occupe des routines de fermeture du programme.
enum Event event()
Fonction qui renvoie un événement en fonction du clavier.
void display_sdl2(grid *G)
Fonction qui affiche le niveau en paramètre dans une fenêtre avec SDL2.
enum Event event_sdl2()
Fonction qui renvoie un événement en fonction du clavier en utilisant SDL2.
void display_ncurses_init()
Fonction qui initialise la bibliothèque d'affichage ncurses.
void display_ncurses_end()
Fonction qui termine l'affichage ncurses.
void display_ncurses_draw(grid *G)
Fonction qui affiche le niveau en paramètre dans le terminal avec ncurses.
grid * init_level(const char *file_path)
Fonction qui charge le niveau de jeu depuis un fichier dans la structure grid.
enum Event event_ncurses()
Fonction qui renvoie un événement en fonction du clavier en utilisant <ncurses.h>
Fichier header contenant les structures de données pour traiter les niveaux du jeu sokoban.
Event
Structure indiquant les différents événements dans le jeu.
@ EVENT_RIGHT
Bouger le jouer vers la droite.
@ EVENT_DOWN
Bouger le joueur vers le bas.
@ EVENT_LEFT
Bouger le joueur vers la gauche.
@ EVENT_NONE
Tout autre événement qui n'est pas géré dans le jeu.
@ EVENT_QUIT
Quitter le jeu.
@ EVENT_UP
Bouger le joueur vers le haut.
int main(int argc, char *argv[])
La fonction qui réunit toutes les autres fonctions et structures.
enum Event(* handle_event)()
Fonction d'évènement de <ncurses.h> ou SDL2.
void(* handle_display)(grid *)
Fonction d'affichage de <ncurses.h> ou SDL2.
void(* handle_init)()
Fonction d'initialisation de <ncurses.h> ou SDL2.
void(* handle_quit)()
Fonction de fermeture de <ncurses.h> ou SDL2.
void move_player(grid *G, enum Direction D)
Fonction qui bouge le joueur dans la direction voulue dans le niveau.
Fichier header contenant les structures pour traiter le joueur et son mouvement.
@ BOTTOM
La direction basse.
@ LEFT
La direction gauche.
@ RIGHT
La direction droite.
void sdl_quit()
Fonction qui referme la bibliothèque SDL2.
void sdl_init()
Fonction qui lance SDL2 et crée une fenêtre.
Fichier header contenant la structure pour gérer SDL2 pour le jeu.
Cette structure contient les informations concernant le niveau du jeu et son contenu.
int goal_number
Nombre d'objectifs de game_grid.
int box_over_goal_number
Nombre d'objectifs réussi de game_grid.