diff --git a/blocus b/blocus deleted file mode 100755 index 1f27014..0000000 Binary files a/blocus and /dev/null differ diff --git a/jeu_humain.c b/jeu_humain.c index f681fd9..2eb8831 100644 --- a/jeu_humain.c +++ b/jeu_humain.c @@ -9,10 +9,10 @@ void attendre(int secondes) { time_t start_time = time(NULL); - while(difftime(time(NULL), start_time) >= secondes) { - break; - } + while(difftime(time(NULL), start_time) < secondes) { + break; } +} void jouerModeHumain(struct EtatJeu *etatJeu) { while (1) { diff --git a/jeu_ia.c b/jeu_ia.c index 342fcce..a739ad5 100644 --- a/jeu_ia.c +++ b/jeu_ia.c @@ -4,44 +4,46 @@ #include #include "jeu.h" #include "jeu_ia.h" +#include "jeu_humain.h" /* Fonction qui permet de jouer avec l'IA */ void jouerModeIA(struct EtatJeu *etatJeu) { - int gagnant; + int compteurIA = 0; - /* Boucle qui permet de jouer avec l'IA */ while (1) { - if (etatJeu->tourJoueur == 1) { + if (etatJeu->tourJoueur == 1) { + compteurIA = 0; if (SourisCliquee()) { if (etatJeu->phase == 0) { gererPlacementInitialIA(etatJeu); } else { gererTourJoueurIA(etatJeu); } - } - } else { - sleep(500000); - if (etatJeu->phase == 0) { - placementIA(etatJeu); - } else if (etatJeu->phase == 1) { - deplacementIA(etatJeu); - } else { - blocageIA(etatJeu); - } - } - - /* Vérifie si le joueur a gagné la partie */ - if (etatJeu->phase > 0) { - gagnant = verifierVictoire(*etatJeu); - if (gagnant != 0) { - afficherVictoire(gagnant); - while (!SourisCliquee()) { - sleep(500000); + + if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) { + afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1); + while (!SourisCliquee()) {} + break; + } + } + } else { + compteurIA++; + if (compteurIA > 50) { + if (etatJeu->phase == 0) { + placementIA(etatJeu); + } else if (etatJeu->phase == 1) { + deplacementIA(etatJeu); + } else { + blocageIA(etatJeu); + } + + if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) { + afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1); + while (!SourisCliquee()) {} + break; } - break; } } - sleep(500000); } }