* display fullname of player
* print the final board at the end
This commit is contained in:
parent
6cbf0fc507
commit
7e00f37208
1 changed files with 12 additions and 9 deletions
21
src/jeu.c
21
src/jeu.c
|
@ -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);
|
||||||
|
|
||||||
|
|
Reference in a new issue