Sokoban  1.1.3
Le fameux jeu Sokoban, poussez les boîtes !
Structures de données | Définitions de type | Énumérations | Fonctions
Référence du fichier player.h

Fichier header contenant les structures pour traiter le joueur et son mouvement. Plus de détails...

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Structures de données

struct  Player
 Cette structure contient la position du joueur dans le niveau. Plus de détails...
 

Définitions de type

typedef struct Grid grid
 
typedef struct Player player
 Cette structure contient la position du joueur dans le niveau. Plus de détails...
 

Énumérations

enum  Direction { LEFT = 'h' , BOTTOM = 'j' , TOP = 'k' , RIGHT = 'l' }
 Cette structure contient les directions possibles dans le jeu. Plus de détails...
 

Fonctions

void move_player (grid *G, enum Direction D)
 Fonction qui bouge le joueur dans la direction voulue dans le niveau. Plus de détails...
 
void move_player_error (grid *G)
 Fonction qui affiche un message d'erreur et quitte le jeu. Plus de détails...
 

Description détaillée

Fichier header contenant les structures pour traiter le joueur et son mouvement.

Auteur
Efe ERKEN (efe.e.nosp@m.rken.nosp@m.@etu..nosp@m.unis.nosp@m.tra.f.nosp@m.r)
Version
0.3
Date
2023-01-24

Définition dans le fichier player.h.

Documentation des définitions de type

◆ player

typedef struct Player player

Cette structure contient la position du joueur dans le niveau.

Cette structure a deux attributs pour stocker les coordonnées x et y du joueur

Documentation du type de l'énumération

◆ Direction

enum Direction

Cette structure contient les directions possibles dans le jeu.

Cette structure indique une direction telle que les 4 possibles mais aussi quelle touche du clavier correspond à quelle direction. Elle est utile pour determiner le mouvement du joueur. Les touches pour controler le joueur peuvent être changées ici.

Valeurs énumérées
LEFT 

La direction gauche.

BOTTOM 

La direction basse.

TOP 

La direction haute.

RIGHT 

La direction droite.

Définition à la ligne 59 du fichier player.h.

Documentation des fonctions

◆ move_player()

void move_player ( grid G,
enum Direction  D 
)

Fonction qui bouge le joueur dans la direction voulue dans le niveau.

Paramètres
[in,out]GPointeur sur la structure du niveau pour lire les cases de celui-ci et les modifier
[in]DUne direction entre le haut, le bas, la gauche et la droite
Précondition
G doit être non NULL et pointer sur la structure allouée
Postcondition
Modification de la structure pointée par G

Cette fonction prend en paramètre deux arguments tels qu'un pointeur vers la structure du niveau de jeu et une direction. Elle bouge le joueur dans la direction donnée si possible en mettant à jour les cases du niveau dans la structure. Elle suit aussi la trace des objectifs réussis du niveau en incrémentant et décrémentant en fonction du nombre de superpositions de boite et d'objectif. Si dans la direction voulue, il n'y a pas de mur il y a plusieurs possibilités. Si dans la direction il y a du vide ou un objectif, elle change la case dans cette direction par un joueur ou une superposition de joueur et d'objectif si la case cible est un objectif et elle change la case où était le joueur auparavant par du vide ou un objectif si la case était une superposition de joueur et d'objectif avant. Si dans la direction voulue il y a une boite, elle vérifie la deuxième case dans la direction. Si cette case est un mur, une boite ou une superposition de boite et d'objectif alors il y a rien à faire. Pourtant si cette case est du vide ou un objectif la fonction change cette case en une boite ou une superposition de boite et d'objectif en fonction de cette case, elle bouge le joueur dans la case où était la boite. Pour ce faire elle change l'ancien case de la boite par un joueur ou une superposition de joueur et d'objectif en fonction de l'ancien état de la boite. Finalement, l'anicen case du joueur est changé en du vide ou en un objectif en fonction de l'état ancien du joueur.

Définition à la ligne 65 du fichier player.c.

Voici le graphe d'appel pour cette fonction :

◆ move_player_error()

void move_player_error ( grid G)

Fonction qui affiche un message d'erreur et quitte le jeu.

Paramètres
[in,out]GPointeur sur une structure grid qui est le niveau de jeu
Précondition
Avoir initialisé la structure de jeu G
Avoir appelé handle_init() auparavant
Postcondition
-

Cette fonction execute la routine de fin, affiche un message d'erreur pour le cas où le jeu rencontre un caractère inconnu dans le niveau et quitte le jeu immédiatement.

Définition à la ligne 169 du fichier player.c.

Voici le graphe d'appel pour cette fonction :