diff --git a/blocus b/blocus index b35d05b..2dcb057 100755 Binary files a/blocus and b/blocus differ diff --git a/jeu.c b/jeu.c index 41f635e..65fb0df 100755 --- a/jeu.c +++ b/jeu.c @@ -133,4 +133,4 @@ int verifierVictoire(struct EtatJeu etatJeu) { } return 0; -} +} \ No newline at end of file diff --git a/jeu.h b/jeu.h index a21233f..daff224 100644 --- a/jeu.h +++ b/jeu.h @@ -36,4 +36,5 @@ int estCaseAdjacente(struct Position pos1, struct Position pos2); /* Fonction qui vérifie si le joueur peut déplacer son pion */ int peutDeplacer(struct EtatJeu etatJeu, int joueur); + #endif /* JEU_H_INCLUS */ diff --git a/jeu_humain.c b/jeu_humain.c index 4f50fda..5caa79d 100644 --- a/jeu_humain.c +++ b/jeu_humain.c @@ -1,3 +1,4 @@ +#define _DEFAULT_SOURCE #include #include #include @@ -5,7 +6,6 @@ #include "jeu.h" #include "jeu_humain.h" -/* Fonction qui permet de jouer en mode humain */ void jouerModeHumain(struct EtatJeu *etatJeu) { while (1) { if (SourisCliquee()) { @@ -23,11 +23,10 @@ void jouerModeHumain(struct EtatJeu *etatJeu) { break; } } - usleep(20000); + usleep(100000); } } -/* Fonction qui gère le placement initial du joueur 1 */ void gererPlacementInitial(struct EtatJeu *etatJeu) { int x, y, i, j; int largeurFenetre = 800; @@ -77,7 +76,6 @@ void gererPlacementInitial(struct EtatJeu *etatJeu) { } } -/* Fonction qui gère le tour du joueur 1 */ void gererTourJoueur(struct EtatJeu *etatJeu) { int x, y, i, j; int largeurFenetre = 800; diff --git a/jeu_humain.h b/jeu_humain.h index 4f49fe0..617862a 100644 --- a/jeu_humain.h +++ b/jeu_humain.h @@ -1,15 +1,10 @@ -#ifndef JEU_HUMAIN_H_INCLUS -#define JEU_HUMAIN_H_INCLUS +#ifndef JEU_HUMAIN_H +#define JEU_HUMAIN_H #include "jeu.h" -/* Fonction qui permet de jouer en mode humain */ void jouerModeHumain(struct EtatJeu *etatJeu); - -/* Fonction qui gère le placement initial du joueur 1 */ void gererPlacementInitial(struct EtatJeu *etatJeu); - -/* Fonction qui gère le tour du joueur 1 */ void gererTourJoueur(struct EtatJeu *etatJeu); -#endif /* JEU_HUMAIN_H_INCLUS */ +#endif diff --git a/jeu_ia.c b/jeu_ia.c index 796b426..e6bc5bd 100644 --- a/jeu_ia.c +++ b/jeu_ia.c @@ -1,3 +1,4 @@ +#define _DEFAULT_SOURCE #include #include #include @@ -36,12 +37,12 @@ void jouerModeIA(struct EtatJeu *etatJeu) { if (gagnant != 0) { afficherVictoire(gagnant); while (!SourisCliquee()) { - usleep(100000); + usleep(500000); } break; } } - usleep(20000); + usleep(500000); } } @@ -191,9 +192,7 @@ void deplacementIA(struct EtatJeu *etatJeu) { /* Fonction qui permet à l'IA de placer un pion de blocage */ void blocageIA(struct EtatJeu *etatJeu) { int i, j; - int trouve = 0; - /* Boucle qui permet de trouver une case valide pour le placement du pion de blocage (avec l'aide de random)*/ do { i = rand() % etatJeu->tailleGrille; j = rand() % etatJeu->tailleGrille; diff --git a/main.c b/main.c old mode 100755 new mode 100644 index 57f958c..603009a --- a/main.c +++ b/main.c @@ -1,7 +1,9 @@ +#define _DEFAULT_SOURCE #include #include #include #include +#include #include "jeu.h" #include "jeu_humain.h" #include "jeu_ia.h" @@ -11,37 +13,35 @@ void menuPrincipale() { int continuer = 1; char tailleStr[4]; int besoinRedessiner = 1; + struct EtatJeu etatJeu; InitialiserGraphique(); /* Initialise la fenêtre graphique */ CreerFenetre(100, 100, 800, 600); /* Crée la fenêtre graphique */ - ChoisirTitreFenetre("Blocus"); /* Change le titre de la fenêtre */ + ChoisirTitreFenetre("Blokus"); /* Change le titre de la fenêtre */ while (continuer) { - if (besoinRedessiner) { /* Si besoin de redessiner */ - EffacerEcran(CouleurParNom("white")); /* Efface l'écran */ - ChoisirCouleurDessin(CouleurParNom("black")); /* - EcrireTexte(300, 50, "BLOCUS", 2); /* Affiche le titre du jeu */ - EcrireTexte(250, 120, "Taille de la grille:", 1); + if (besoinRedessiner) { + EffacerEcran(CouleurParNom("white")); + ChoisirCouleurDessin(CouleurParNom("black")); + EcrireTexte(290, 50, "Jeu du Blokus", 2); + EcrireTexte(250, 130, "Taille de la grille:", 1); sprintf(tailleStr, "%d", tailleGrille); - EcrireTexte(450, 120, tailleStr, 1); /* Affiche la taille de la grille */ - - RemplirRectangle(500, 110, 30, 30); /* Remplit la case + */ - RemplirRectangle(540, 110, 30, 30); /* Remplit la case - */ - ChoisirCouleurDessin(CouleurParNom("white")); - EcrireTexte(510, 120, "+", 1); /* Affiche le + */ - EcrireTexte(550, 120, "-", 1); /* Affiche le - */ - - ChoisirCouleurDessin(CouleurParNom("black")); - RemplirRectangle(250, 180, 300, 50); /* Remplit la case 1 Joueur (contre IA) */ - RemplirRectangle(250, 250, 300, 50); /* Remplit la case 2 Joueurs */ - ChoisirCouleurDessin(CouleurParNom("white")); - EcrireTexte(280, 195, "1 Joueur (contre IA)", 1); /* Affiche 1 Joueur (contre IA) */ - EcrireTexte(280, 265, "2 Joueurs", 1); /* Affiche 2 Joueurs */ - - ChoisirCouleurDessin(CouleurParNom("black")); - RemplirRectangle(250, 320, 300, 50); /* Remplit la case Quitter */ - ChoisirCouleurDessin(CouleurParNom("white")); - EcrireTexte(320, 335, "Quitter", 1); /* Affiche Quitter */ + EcrireTexte(450, 130, tailleStr, 1); + RemplirRectangle(500, 110, 30, 30); + RemplirRectangle(540, 110, 30, 30); + ChoisirCouleurDessin(CouleurParNom("white")); + EcrireTexte(510, 125, "+", 1); + EcrireTexte(550, 125, "-", 1); + ChoisirCouleurDessin(CouleurParNom("black")); + RemplirRectangle(250, 190, 300, 50); + RemplirRectangle(250, 260, 300, 50); + ChoisirCouleurDessin(CouleurParNom("white")); + EcrireTexte(280, 215, "1 Joueur (contre IA)", 1); + EcrireTexte(280, 285, "2 Joueurs", 1); + ChoisirCouleurDessin(CouleurParNom("black")); + RemplirRectangle(250, 330, 300, 50); + ChoisirCouleurDessin(CouleurParNom("white")); + EcrireTexte(280, 355, "Quitter", 1); besoinRedessiner = 0; } @@ -61,25 +61,26 @@ void menuPrincipale() { besoinRedessiner = 1; } } else if (mouseX >= 250 && mouseX <= 600) { /* Si la souris est sur la case 1 Joueur (contre IA) */ - struct EtatJeu etatJeu; - if (mouseY >= 180 && mouseY <= 230) { - etatJeu = initialiserJeu(tailleGrille, 1); + if ((mouseY >= 180 && mouseY <= 230) || (mouseY >= 250 && mouseY <= 300)) { + int mode = (mouseY >= 180 && mouseY <= 230) ? 1 : 2; + etatJeu = initialiserJeu(tailleGrille, mode); EffacerEcran(CouleurParNom("white")); dessinerGrille(etatJeu); - jouerModeIA(&etatJeu); + + if (mode == 1) { + jouerModeIA(&etatJeu); + } else { + jouerModeHumain(&etatJeu); + } + besoinRedessiner = 1; - } else if (mouseY >= 250 && mouseY <= 300) { /* Si la souris est sur la case 2 Joueurs */ - etatJeu = initialiserJeu(tailleGrille, 2); - EffacerEcran(CouleurParNom("white")); - dessinerGrille(etatJeu); - jouerModeHumain(&etatJeu); - besoinRedessiner = 1; - } else if (mouseY >= 320 && mouseY <= 370) { /* Si la souris est sur la case Quitter */ + + } else if (mouseY >= 320 && mouseY <= 370) { continuer = 0; } } } - usleep(20000); + usleep(10000); } FermerGraphique();