diff --git a/src/jeu_humain.c b/src/jeu_humain.c index f2b1b44..4ca264e 100644 --- a/src/jeu_humain.c +++ b/src/jeu_humain.c @@ -1,10 +1,19 @@ -#define _DEFAULT_SOURCE /* Pour utiliser _X et _Y */ -#include /* Pour utiliser printf */ -#include /* Pour utiliser malloc() */ -#include /* Pour utiliser les fonctions graphiques */ -#include /* Pour utiliser usleep */ -#include "../include/jeu.h" /* Pour utiliser les structures et les fonctions du jeu */ -#include "../include/jeu_humain.h" /* Pour utiliser les fonctions de jeu_humain */ +#include +#include +#include +#include +#include "../include/jeu.h" +#include "../include/jeu_humain.h" + +#define DELAI_MS 100 + + +void attendre(int delai_ms) { + clock_t start_time = clock(); + while (((clock() - start_time) * 1000) / CLOCKS_PER_SEC < delai_ms) { + + } +} void jouerModeHumain(struct EtatJeu *etatJeu) { while (1) { @@ -18,12 +27,12 @@ void jouerModeHumain(struct EtatJeu *etatJeu) { if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) { afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1); while (!SourisCliquee()) { - usleep(100000); + attendre(DELAI_MS); } break; } } - usleep(100000); + attendre(DELAI_MS); } } @@ -134,3 +143,5 @@ void gererTourJoueur(struct EtatJeu *etatJeu) { } } } + + diff --git a/src/jeu_ia.c b/src/jeu_ia.c index 28c0dee..f3d9f36 100644 --- a/src/jeu_ia.c +++ b/src/jeu_ia.c @@ -1,10 +1,10 @@ -#define _DEFAULT_SOURCE #include #include #include -#include +#include #include "../include/jeu.h" #include "../include/jeu_ia.h" +#include "../include/jeu_humain.h" /* Pour utiliser la fonction attendre */ /* Fonction qui permet de jouer avec l'IA */ void jouerModeIA(struct EtatJeu *etatJeu) { @@ -21,7 +21,7 @@ void jouerModeIA(struct EtatJeu *etatJeu) { } } } else { - usleep(500000); + attendre(1); if (etatJeu->phase == 0) { placementIA(etatJeu); } else if (etatJeu->phase == 1) { @@ -37,12 +37,12 @@ void jouerModeIA(struct EtatJeu *etatJeu) { if (gagnant != 0) { afficherVictoire(gagnant); while (!SourisCliquee()) { - usleep(500000); + attendre(1); } break; } } - usleep(500000); + attendre(1); } } diff --git a/src/main.c b/src/main.c index d9ee8c6..1656f35 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,6 @@ -#define _DEFAULT_SOURCE /* Pour utiliser X et Y */ #include #include #include -#include #include #include "../include/jeu.h" #include "../include/jeu_humain.h" @@ -16,15 +14,16 @@ void menuPrincipale() { int besoinRedessiner = 1; struct EtatJeu etatJeu; - InitialiserGraphique(); /* Initialise la fenêtre graphique */ - CreerFenetre(100, 100, 800, 600); /* Crée la fenêtre graphique */ - ChoisirTitreFenetre("Blokus"); /* Change le titre de la fenêtre */ - + InitialiserGraphique(); + CreerFenetre(100, 100, 800, 600); + ChoisirTitreFenetre("Blocus"); + + while (continuer) { if (besoinRedessiner) { EffacerEcran(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("black")); - EcrireTexte(290, 50, "Jeu du Blokus", 2); + EcrireTexte(290, 50, "Jeu du Blocus", 2); EcrireTexte(250, 130, "Taille de la grille:", 1); sprintf(tailleStr, "%d", tailleGrille); EcrireTexte(450, 130, tailleStr, 1); @@ -47,23 +46,23 @@ void menuPrincipale() { besoinRedessiner = 0; } - if (SourisCliquee()) { /* Si la souris est cliquée */ + if (SourisCliquee()) { int mouseX = _X; int mouseY = _Y; - if (mouseX >= 500 && mouseX <= 530 && mouseY >= 110 && mouseY <= 140) { /* Si la souris est sur la case + */ + if (mouseX >= 500 && mouseX <= 530 && mouseY >= 110 && mouseY <= 140) { if (tailleGrille < 9) { tailleGrille++; besoinRedessiner = 1; } - } else if (mouseX >= 540 && mouseX <= 570 && mouseY >= 110 && mouseY <= 140) { /* Si la souris est sur la case - */ + } else if (mouseX >= 540 && mouseX <= 570 && mouseY >= 110 && mouseY <= 140) { if (tailleGrille > 3) { tailleGrille--; besoinRedessiner = 1; } - } else if (mouseX >= 250 && mouseX <= 600) { /* Si la souris est sur la case 1 Joueur (contre IA) */ + } else if (mouseX >= 250 && mouseX <= 600) { if ((mouseY >= 180 && mouseY <= 230) || (mouseY >= 250 && mouseY <= 300)) { - /* calcule le mode de jeu en fonction de où on clique (1 pour ia, 2 pour 2 joueurs) */ + int mode = (mouseY >= 180 && mouseY <= 230) ? 1 : 2; etatJeu = initialiserJeu(tailleGrille, mode); EffacerEcran(CouleurParNom("white")); @@ -82,15 +81,15 @@ void menuPrincipale() { } } } - usleep(10000); + attendre(10); } FermerGraphique(); } -/* fonction principale qui lance le jeu */ -int main() { - srand(time(NULL)); /* initialise le générateur de nombres aléatoires */ + +int main(void) { + srand((unsigned int)time(NULL)); menuPrincipale(); - return 0; + return EXIT_FAILURE; }