suppression de default source, <unistd.h>, ajout de la fonction attendre a la place

This commit is contained in:
2024-11-23 14:24:29 +01:00
parent d6f4fd8f5f
commit 11626b75bd
3 changed files with 41 additions and 31 deletions

View File

@@ -1,10 +1,19 @@
#define _DEFAULT_SOURCE /* Pour utiliser _X et _Y */
#include <stdio.h> /* Pour utiliser printf */
#include <stdlib.h> /* Pour utiliser malloc() */
#include <graph.h> /* Pour utiliser les fonctions graphiques */
#include <unistd.h> /* 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 <stdio.h>
#include <stdlib.h>
#include <graph.h>
#include <time.h>
#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) {
}
}
}

View File

@@ -1,10 +1,10 @@
#define _DEFAULT_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <graph.h>
#include <unistd.h>
#include <time.h>
#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);
}
}

View File

@@ -1,8 +1,6 @@
#define _DEFAULT_SOURCE /* Pour utiliser X et Y */
#include <stdio.h>
#include <stdlib.h>
#include <graph.h>
#include <unistd.h>
#include <time.h>
#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;
}