suppression de default source, <unistd.h>, ajout de la fonction attendre a la place
This commit is contained in:
@@ -1,10 +1,19 @@
|
|||||||
#define _DEFAULT_SOURCE /* Pour utiliser _X et _Y */
|
#include <stdio.h>
|
||||||
#include <stdio.h> /* Pour utiliser printf */
|
#include <stdlib.h>
|
||||||
#include <stdlib.h> /* Pour utiliser malloc() */
|
#include <graph.h>
|
||||||
#include <graph.h> /* Pour utiliser les fonctions graphiques */
|
#include <time.h>
|
||||||
#include <unistd.h> /* Pour utiliser usleep */
|
#include "../include/jeu.h"
|
||||||
#include "../include/jeu.h" /* Pour utiliser les structures et les fonctions du jeu */
|
#include "../include/jeu_humain.h"
|
||||||
#include "../include/jeu_humain.h" /* Pour utiliser les fonctions de jeu_humain */
|
|
||||||
|
#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) {
|
void jouerModeHumain(struct EtatJeu *etatJeu) {
|
||||||
while (1) {
|
while (1) {
|
||||||
@@ -18,12 +27,12 @@ void jouerModeHumain(struct EtatJeu *etatJeu) {
|
|||||||
if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) {
|
if (etatJeu->phase > 0 && !peutDeplacer(*etatJeu, etatJeu->tourJoueur)) {
|
||||||
afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1);
|
afficherVictoire(etatJeu->tourJoueur == 1 ? 2 : 1);
|
||||||
while (!SourisCliquee()) {
|
while (!SourisCliquee()) {
|
||||||
usleep(100000);
|
attendre(DELAI_MS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(100000);
|
attendre(DELAI_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,3 +143,5 @@ void gererTourJoueur(struct EtatJeu *etatJeu) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
src/jeu_ia.c
10
src/jeu_ia.c
@@ -1,10 +1,10 @@
|
|||||||
#define _DEFAULT_SOURCE
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
#include <unistd.h>
|
#include <time.h>
|
||||||
#include "../include/jeu.h"
|
#include "../include/jeu.h"
|
||||||
#include "../include/jeu_ia.h"
|
#include "../include/jeu_ia.h"
|
||||||
|
#include "../include/jeu_humain.h" /* Pour utiliser la fonction attendre */
|
||||||
|
|
||||||
/* Fonction qui permet de jouer avec l'IA */
|
/* Fonction qui permet de jouer avec l'IA */
|
||||||
void jouerModeIA(struct EtatJeu *etatJeu) {
|
void jouerModeIA(struct EtatJeu *etatJeu) {
|
||||||
@@ -21,7 +21,7 @@ void jouerModeIA(struct EtatJeu *etatJeu) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
usleep(500000);
|
attendre(1);
|
||||||
if (etatJeu->phase == 0) {
|
if (etatJeu->phase == 0) {
|
||||||
placementIA(etatJeu);
|
placementIA(etatJeu);
|
||||||
} else if (etatJeu->phase == 1) {
|
} else if (etatJeu->phase == 1) {
|
||||||
@@ -37,12 +37,12 @@ void jouerModeIA(struct EtatJeu *etatJeu) {
|
|||||||
if (gagnant != 0) {
|
if (gagnant != 0) {
|
||||||
afficherVictoire(gagnant);
|
afficherVictoire(gagnant);
|
||||||
while (!SourisCliquee()) {
|
while (!SourisCliquee()) {
|
||||||
usleep(500000);
|
attendre(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(500000);
|
attendre(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
31
src/main.c
31
src/main.c
@@ -1,8 +1,6 @@
|
|||||||
#define _DEFAULT_SOURCE /* Pour utiliser X et Y */
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include "../include/jeu.h"
|
#include "../include/jeu.h"
|
||||||
#include "../include/jeu_humain.h"
|
#include "../include/jeu_humain.h"
|
||||||
@@ -16,15 +14,16 @@ void menuPrincipale() {
|
|||||||
int besoinRedessiner = 1;
|
int besoinRedessiner = 1;
|
||||||
struct EtatJeu etatJeu;
|
struct EtatJeu etatJeu;
|
||||||
|
|
||||||
InitialiserGraphique(); /* Initialise la fenêtre graphique */
|
InitialiserGraphique();
|
||||||
CreerFenetre(100, 100, 800, 600); /* Crée la fenêtre graphique */
|
CreerFenetre(100, 100, 800, 600);
|
||||||
ChoisirTitreFenetre("Blokus"); /* Change le titre de la fenêtre */
|
ChoisirTitreFenetre("Blocus");
|
||||||
|
|
||||||
|
|
||||||
while (continuer) {
|
while (continuer) {
|
||||||
if (besoinRedessiner) {
|
if (besoinRedessiner) {
|
||||||
EffacerEcran(CouleurParNom("white"));
|
EffacerEcran(CouleurParNom("white"));
|
||||||
ChoisirCouleurDessin(CouleurParNom("black"));
|
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);
|
EcrireTexte(250, 130, "Taille de la grille:", 1);
|
||||||
sprintf(tailleStr, "%d", tailleGrille);
|
sprintf(tailleStr, "%d", tailleGrille);
|
||||||
EcrireTexte(450, 130, tailleStr, 1);
|
EcrireTexte(450, 130, tailleStr, 1);
|
||||||
@@ -47,23 +46,23 @@ void menuPrincipale() {
|
|||||||
besoinRedessiner = 0;
|
besoinRedessiner = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SourisCliquee()) { /* Si la souris est cliquée */
|
if (SourisCliquee()) {
|
||||||
int mouseX = _X;
|
int mouseX = _X;
|
||||||
int mouseY = _Y;
|
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) {
|
if (tailleGrille < 9) {
|
||||||
tailleGrille++;
|
tailleGrille++;
|
||||||
besoinRedessiner = 1;
|
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) {
|
if (tailleGrille > 3) {
|
||||||
tailleGrille--;
|
tailleGrille--;
|
||||||
besoinRedessiner = 1;
|
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)) {
|
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;
|
int mode = (mouseY >= 180 && mouseY <= 230) ? 1 : 2;
|
||||||
etatJeu = initialiserJeu(tailleGrille, mode);
|
etatJeu = initialiserJeu(tailleGrille, mode);
|
||||||
EffacerEcran(CouleurParNom("white"));
|
EffacerEcran(CouleurParNom("white"));
|
||||||
@@ -82,15 +81,15 @@ void menuPrincipale() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(10000);
|
attendre(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
FermerGraphique();
|
FermerGraphique();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fonction principale qui lance le jeu */
|
|
||||||
int main() {
|
int main(void) {
|
||||||
srand(time(NULL)); /* initialise le générateur de nombres aléatoires */
|
srand((unsigned int)time(NULL));
|
||||||
menuPrincipale();
|
menuPrincipale();
|
||||||
return 0;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user