diff --git a/includes/jeu.h b/includes/jeu.h index bab86fc..5e29222 100644 --- a/includes/jeu.h +++ b/includes/jeu.h @@ -57,7 +57,7 @@ Jeu *nouvelle_partie(void); void deroulement_partie(Jeu *jeu); /* Vérifie si un joueur peut jouer */ -int _action_joueur(Jeton *plateau[LONGEUR][LARGEUR], int couleur); +int action_possible_joueur(Jeton *plateau[LONGEUR][LARGEUR], int couleur); /* Joue le tour d'un joueur */ void action_joueur(Jeu *jeu, int couleur); diff --git a/includes/plateau.h b/includes/plateau.h index 4be35bc..b30a566 100644 --- a/includes/plateau.h +++ b/includes/plateau.h @@ -6,12 +6,20 @@ /* Remplie le plateau avec la configuration de départ */ void remplissage_debut(Jeu *jeu); -/* Affiche une suite de lettres */ +/* Auxiliaire: Affiche une suite de lettres */ void _affiche_lettres(void); /* Affiche le plateau */ void affiche_plateau(Jeton *plateau[LONGEUR][LARGEUR]); +/* Auxiliaire: Vérifie pour une direction si le coup est jouable */ +int _case_jouable(Jeton *plat[LONGEUR][LARGEUR], int case_i, int case_j, + int case_i_direction, int case_j_direction, int couleur); + +/* Vérifie si une case est jouable par un joueur */ +int case_jouable(Jeton *plateau[LONGEUR][LARGEUR], int case_i, int case_j, + int couleur); + /* Vérifie si le plateau est rempli */ int plateau_rempli(Jeton *plateau[LONGEUR][LARGEUR]); diff --git a/src/jeu.c b/src/jeu.c index 39fe916..50717a7 100644 --- a/src/jeu.c +++ b/src/jeu.c @@ -35,7 +35,7 @@ void deroulement_partie(Jeu *jeu) { affiche_plateau(jeu->plateau); // TODO: Check if player can play - if (_action_joueur(jeu->plateau, tour)) { + if (action_possible_joueur(jeu->plateau, tour)) { action_joueur(jeu, tour); } @@ -45,9 +45,15 @@ void deroulement_partie(Jeu *jeu) { // TODO: Handle end game } -int _action_joueur(Jeton *plat[LONGEUR][LARGEUR], int couleur) { - // TODO - return 1; +int action_possible_joueur(Jeton *plat[LONGEUR][LARGEUR], int couleur) { + for (int i = 0; i < 8; i++) { + for (int j = 0; j < 8; j++) { + if (case_jouable(plat, i, j, couleur)) { + return 1; + } + } + } + return 0; } void action_joueur(Jeu *jeu, int couleur) { @@ -56,8 +62,8 @@ void action_joueur(Jeu *jeu, int couleur) { } int partie_finie(Jeu *jeu) { - return ((!_action_joueur(jeu->plateau, NOIR)) && - (!_action_joueur(jeu->plateau, BLANC))) || + return ((!action_possible_joueur(jeu->plateau, NOIR)) && + (!action_possible_joueur(jeu->plateau, BLANC))) || plateau_rempli(jeu->plateau); } diff --git a/src/plateau.c b/src/plateau.c index 0972d1a..f99dd03 100644 --- a/src/plateau.c +++ b/src/plateau.c @@ -61,6 +61,18 @@ void affiche_plateau(Jeton *plat[LONGEUR][LARGEUR]) { _affiche_lettres(); } +int _case_jouable(Jeton *plat[LONGEUR][LARGEUR], int case_i, int case_j, + int case_i_direction, int case_j_direction, int couleur) { + // TODO + return 1; +} + +int case_jouable(Jeton *plat[LONGEUR][LARGEUR], int case_i, int case_j, + int couleur) { + // TODO + return 1; +} + int plateau_rempli(Jeton *plat[LONGEUR][LARGEUR]) { for (int i = 0; i < LONGEUR; ++i) { for (int j = 0; j < LARGEUR; ++j) {