* display fullname of player

* print the final board at the end
This commit is contained in:
Mylloon 2022-11-18 16:08:37 +01:00
parent 6cbf0fc507
commit 7e00f37208
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -11,7 +11,7 @@ Jeton *ajoute_jeton(int pos_i, int pos_j, int couleur) {
Joueur *nouveau_joueur(int pion) { Joueur *nouveau_joueur(int pion) {
Joueur *joueur = malloc(sizeof(Joueur)); Joueur *joueur = malloc(sizeof(Joueur));
joueur->nom = pion == NOIR ? "NOIR" : "BLANC"; joueur->nom = pion == NOIR ? "noir" : "blanc";
joueur->couleur = pion; joueur->couleur = pion;
joueur->liste_jeton = nouvelle_liste(); joueur->liste_jeton = nouvelle_liste();
joueur->nb_jeton = 0; joueur->nb_jeton = 0;
@ -30,31 +30,35 @@ Jeu *nouvelle_partie(void) {
} }
void deroulement_partie(Jeu *jeu) { void deroulement_partie(Jeu *jeu) {
int tour = NOIR; Joueur *tour = jeu->j1->couleur == NOIR ? jeu->j1 : jeu->j2;
while (!partie_finie(jeu)) { while (!partie_finie(jeu)) {
affiche_plateau(jeu->plateau); affiche_plateau(jeu->plateau);
Coups *possibilites = action_possible_joueur(jeu->plateau, tour); Coups *possibilites =
action_possible_joueur(jeu->plateau, tour->couleur);
if (possibilites->taille_liste > 0) { if (possibilites->taille_liste > 0) {
// Si le joueur peut jouer // Si le joueur peut jouer
printf("Coups possibles : "); printf("Tour des jetons %ss !\n", tour->nom);
printf("Coups possibles (%d) : ", possibilites->taille_liste);
affiche_liste(possibilites->coups->premier); affiche_liste(possibilites->coups->premier);
printf("\n"); printf("\n");
action_joueur_humain(jeu, tour); action_joueur_humain(jeu, tour->couleur);
} else { } else {
printf("Pas de coup jouable.\n"); printf("Pas de coup jouable.\n");
} }
free_coups(possibilites); free_coups(possibilites);
tour = tour == NOIR ? BLANC : NOIR; tour = jeu->j1->couleur == tour->couleur ? jeu->j2 : jeu->j1;
} }
affiche_plateau(jeu->plateau);
int resultat[3]; int resultat[3];
if (selection_gagnant(jeu, resultat)) { if (selection_gagnant(jeu, resultat)) {
printf("Fin de partie ! Le joueur %c a gagné %d contre %d !\n", printf("Fin de partie ! Le joueur %s a gagné %d contre %d !\n",
resultat[0], resultat[1], resultat[2]); jeu->j1->couleur == resultat[0] ? jeu->j1->nom : jeu->j2->nom,
resultat[1], resultat[2]);
} else { } else {
printf("Égalité parfaite, %d contre %d !\n", jeu->j1->nb_jeton, printf("Égalité parfaite, %d contre %d !\n", jeu->j1->nb_jeton,
jeu->j2->nb_jeton); jeu->j2->nb_jeton);
@ -186,7 +190,6 @@ void _action_joueur_humain(int *ligne, int *colonne) {
} }
void action_joueur_humain(Jeu *jeu, int couleur) { void action_joueur_humain(Jeu *jeu, int couleur) {
printf("Tour des %c !\n", couleur);
int ligne, colonne; int ligne, colonne;
_action_joueur_humain(&ligne, &colonne); _action_joueur_humain(&ligne, &colonne);