l'IA fonctionne maintenant de manière instantanée

This commit is contained in:
2024-11-24 15:33:39 +01:00
parent 25550e887f
commit 6c7dbcc13a
3 changed files with 29 additions and 27 deletions

BIN
blocus

Binary file not shown.

View File

@@ -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) {

View File

@@ -4,44 +4,46 @@
#include <unistd.h>
#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) {
compteurIA = 0;
if (SourisCliquee()) {
if (etatJeu->phase == 0) {
gererPlacementInitialIA(etatJeu);
} else {
gererTourJoueurIA(etatJeu);
}
if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) {
afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1);
while (!SourisCliquee()) {}
break;
}
}
} 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);
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);
}
}