41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#ifndef OTHELLO_JOUEUR_H
|
|
#define OTHELLO_JOUEUR_H 1
|
|
|
|
#include "jeu.h"
|
|
#include "liste.h"
|
|
#include "plateau.h"
|
|
|
|
typedef struct jeu Jeu;
|
|
|
|
/* Joueur possédant un nom, une couleur ainsi que sa liste de jeton
|
|
* placé sur le plateau */
|
|
struct joueur {
|
|
char *nom;
|
|
int couleur;
|
|
Liste *liste_jeton;
|
|
int nb_jeton; // permet de facilement savoir qui a gagné
|
|
};
|
|
typedef struct joueur Joueur;
|
|
|
|
/* Créer un nouveau joueur */
|
|
Joueur *nouveau_joueur(int pion);
|
|
|
|
/* Ajoute un jeton à un joueur */
|
|
void ajoute_jeton_joueur(Joueur *joueur, Jeton *jeton);
|
|
|
|
/* Retire un jeton à un joueur */
|
|
void retire_jeton_joueur(Joueur *joueur, Jeton *jeton);
|
|
|
|
/* Renvoie la couleur de l'ennemi */
|
|
int couleur_ennemi(int couleur);
|
|
|
|
/* Gère le coup d'un joueur en faisant les changements nécessaire au jeu
|
|
* Renvoie 0 en cas de coup illégal */
|
|
int jeu_joueur(Jeu *jeu, int case_i, int case_j, int couleur);
|
|
|
|
/* Auxiliaire : S'occupe de faire les changements de jetons récursivement
|
|
* lorsqu'un joueur joue */
|
|
void _jeu_joueur(Jeu *jeu, int case_i, int case_j, int case_i_direction,
|
|
int case_j_direction, int couleur);
|
|
|
|
#endif
|