diff --git a/affichage.h b/affichage.h index fc9c16c..93b8ec9 100644 --- a/affichage.h +++ b/affichage.h @@ -3,12 +3,12 @@ #ifndef DEF_AFFICHAGE #define DEF_AFFICHAGE -void afficher_regles(); // affiche les règles du jeu -void afficher_menu(); // affiche le menu des choix -void afficher_menu_difficulte(); // affiche le menu des choix -void afficher_credits(); // affiche le nom des développeurs de ce projet -void afficher_allumettes(int); // affiche le nombre d'allumettes restantes avec leur représentation -void afficher_perdant(char*); // affiche quel joueur est perdant -void afficher_tour(char*); // affiche le joueur qui doit faire un coup +void afficher_regles(); // affiche les règles du jeu +void afficher_menu(); // affiche le menu des choix +void afficher_menu_difficulte(); // affiche le menu des choix +void afficher_credits(); // affiche le nom des développeurs de ce projet +void afficher_allumettes(int); // affiche le nombre d'allumettes restantes avec leur représentation +void afficher_perdant(char*); // affiche quel joueur est perdant +void afficher_tour(char*); // affiche le joueur qui doit faire un coup #endif diff --git a/partie.c b/partie.c index 426f502..7a3f0f6 100644 --- a/partie.c +++ b/partie.c @@ -12,7 +12,6 @@ int NB_ALLUMETTES = 30; void partie(char *joueur1, char *joueur2) { enum Joueur joueur_courant = J1; - int allumettes_retirees = 0; while (NB_ALLUMETTES) { @@ -25,12 +24,9 @@ void partie(char *joueur1, char *joueur2) { afficher_allumettes(NB_ALLUMETTES); if ((allumettes_retirees = jouer_coup(joueur_courant))) { - if (joueur_courant == J1){ - printf("%s a retire %d allumette(s).\n", joueur1, allumettes_retirees); - } else { - printf("%s a retire %d allumette(s).\n", joueur2, allumettes_retirees); - } - joueur_courant = (joueur_courant + 1) % 2; // il n'y a que deux joueurs + if (joueur_courant == J1) printf("%s a retiré %d allumette(s).\n", joueur1, allumettes_retirees); + else printf("%s a retiré %d allumette(s).\n", joueur2, allumettes_retirees); + joueur_courant = (joueur_courant + 1) % 2; // il n'y a que deux joueurs } } @@ -46,18 +42,19 @@ int get_nb_allumettes_a_retirer(enum Joueur joueur_courant) { int allumettes_a_retirer; if ((ORDINATEUR != HUMAN) && (joueur_courant == J2)) { - if (ORDINATEUR == EASY){ + if (ORDINATEUR == EASY) { // ORDI Stupide - allumettes_a_retirer = rand() % 3 +1 ; - } else if(ORDINATEUR == HARD){ + allumettes_a_retirer = rand() % 3 + 1; + } else if(ORDINATEUR == HARD) { // ORDI Intelligent - allumettes_a_retirer = ((NB_ALLUMETTES-1) % 4); - if (allumettes_a_retirer == 0){ //Si l'ordinateur ne peut pas jouer intelligement, alors il joue aléatoirement. - allumettes_a_retirer = rand() % 3 +1 ; //On ne s'intéresse pas à savoir si on enlève plus que le nombre d'allumettes qu'il reste car c'est géré dans jouer coup + allumettes_a_retirer = ((NB_ALLUMETTES - 1) % 4); + if (allumettes_a_retirer == 0) { + // Si l'ordinateur ne peut pas jouer intelligemment, alors il joue aléatoirement. + // On ne s'intéresse pas à savoir si on enlève plus que le nombre d'allumettes qu'il reste car c'est géré dans jouer_coup + allumettes_a_retirer = rand() % 3 + 1 ; } } else { // ERREUR - printf(""); exit(EXIT_FAILURE); } diff --git a/partie.h b/partie.h index 3c4e8e8..78118fa 100644 --- a/partie.h +++ b/partie.h @@ -7,8 +7,8 @@ enum Ordinateur {HUMAN, EASY, HARD, UNDEFINED}; extern enum Ordinateur ORDINATEUR; enum Joueur {J1, J2}; -int jouer_coup(enum Joueur); // renvoie faux si le coup n'est pas valide (il devra être rejoué) -int get_nb_allumettes_a_retirer(enum Joueur); // pour un humain, demande le nombre, pour un ordinateur, le génère -void partie(char*, char*); // boucle infinie qui alterne les joueurs puis affiche le perdant +int jouer_coup(enum Joueur); // renvoie le nombre d'allumettes retirées (0 = coup invalide) +int get_nb_allumettes_a_retirer(enum Joueur); // pour un humain, demande le nombre, pour un ordinateur, le génère +void partie(char*, char*); // boucle infinie qui alterne les joueurs puis affiche le perdant #endif