From 194076b00224b04312c6802d62423510d7dce4e2 Mon Sep 17 00:00:00 2001 From: abraham Date: Mon, 18 Nov 2024 17:18:12 +0100 Subject: [PATCH] le menu avance --- comportementJCJ.c | 47 ++++++++++---------------------- jeu.h | 2 +- main.c | 31 ++++++++++++++++++--- taille.c | 66 +++++++++++++++++++++------------------------ verificationblock.c | 2 +- 5 files changed, 75 insertions(+), 73 deletions(-) diff --git a/comportementJCJ.c b/comportementJCJ.c index 0e47de5..bf1b97a 100644 --- a/comportementJCJ.c +++ b/comportementJCJ.c @@ -1,7 +1,5 @@ #include -#include - #include "definirMaxXY.h" #include "initialisation.h" @@ -11,7 +9,7 @@ int compJCJ(int taille){ - int fin = 0, tabx = 0, taby = 0, tour = 0, initi = 0, SourisX = 0, SourisY = 0, x = 50, y = 100, initialiser = 0; + int fin = 0, tabx = 0, taby = 0, tour = 0, initi = 0, SourisX = 0, SourisY = 0, initialiser = 0; int maxX = 0, maxY = 0, joueurx1 = 0, joueury1 = 0, joueurx2 = 0, joueury2 = 0, placer = 1; int emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0; int grille[taille+2][taille+2]; @@ -79,8 +77,12 @@ int compJCJ(int taille){ SourisY = _Y; } VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); - if(grille[joueury1+1 != 0 && joueury1-1 != 0 && joueurx1+1 != 0 && joueurx1-1 != 0){ - printf("\n\nechec\n\n"); + if(grille[joueury1+1][joueurx1] != 0 && grille[joueury1-1][joueurx1] != 0 && grille[joueury1+1][joueurx1+1] != 0 && grille[joueury1-1][joueurx1-1] != 0 && grille[joueury1][joueurx1+1] != 0 && grille[joueury1][joueurx1-1] != 0){ + LibererSprite(1); + LibererSprite(2); + LibererSprite(3); + LibererSprite(4); + return 2; } if(empperso[0] != 0){ if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury1+1 && empperso[1] >= joueury1-1) && (empperso[0] <= joueurx1+1 && empperso[0] >= joueurx1-1)){ @@ -97,13 +99,6 @@ int compJCJ(int taille){ emplacementcooX1 = empperso[2]; emplacementcooY1 = empperso[3]; placer = 0; - for(tabx = 0; tabx < taille + 2; tabx++){ - for(taby = 0; taby < taille + 2; taby++){ - printf("%d", grille[tabx][taby]); - } - printf("\n"); - } - } } } @@ -128,13 +123,6 @@ int compJCJ(int taille){ grille[empblock[1]][empblock[0]] = 3; AfficherSprite(3, empblock[2], empblock[3]); placer = 0; - for(tabx = 0; tabx < taille + 2; tabx++){ - for(taby = 0; taby < taille + 2; taby++){ - printf("%d", grille[tabx][taby]); - } - printf("\n"); - } - } } } @@ -152,6 +140,13 @@ int compJCJ(int taille){ SourisY = _Y; } VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); + if(grille[joueury2+1][joueurx2] != 0 && grille[joueury2-1][joueurx2] != 0 && grille[joueury2+1][joueurx2+1] != 0 && grille[joueury2-1][joueurx2-1] != 0 && grille[joueury2][joueurx2+1] != 0 && grille[joueury2][joueurx2-1] != 0){ + LibererSprite(1); + LibererSprite(2); + LibererSprite(3); + LibererSprite(4); + return 1; + } if(empperso[0] != 0){ if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury2+1 && empperso[1] >= joueury2-1) && (empperso[0] <= joueurx2+1 && empperso[0] >= joueurx2-1)){ grille[joueury2][joueurx2] = 0; @@ -167,13 +162,6 @@ int compJCJ(int taille){ emplacementcooX2 = empperso[2]; emplacementcooY2 = empperso[3]; placer = 0; - for(tabx = 0; tabx < taille + 2; tabx++){ - for(taby = 0; taby < taille + 2; taby++){ - printf("%d", grille[tabx][taby]); - } - printf("\n"); - } - } } } @@ -199,13 +187,6 @@ int compJCJ(int taille){ grille[empblock[1]][empblock[0]] = 4; AfficherSprite(4, empblock[2], empblock[3]); placer = 0; - for(tabx = 0; tabx < taille + 2; tabx++){ - for(taby = 0; taby < taille + 2; taby++){ - printf("%d", grille[tabx][taby]); - } - printf("\n"); - } - } } } diff --git a/jeu.h b/jeu.h index 5d25167..8e6c2e3 100644 --- a/jeu.h +++ b/jeu.h @@ -2,7 +2,7 @@ #define JEU_H -int GraphJeu(); +int Jeu(); #endif diff --git a/main.c b/main.c index 428f482..f05909e 100644 --- a/main.c +++ b/main.c @@ -1,11 +1,36 @@ #include +#include + + +#include #include "jeu.h" int main (void){ - int victoire = 0; + int victoire = 0, choix = 0; InitialiserGraphique(); CreerFenetre(50, 50, 700, 500); /* Initialise la fenetre puis lance le programme jeu.c qui lancera d'autre programme */ - EffacerEcran(CouleurParNom("white")); - victoire = Jeu(); + while(1){ + EffacerEcran(CouleurParNom("white")); + victoire = Jeu(); + printf("victoire : %d\n", victoire); + FermerGraphique(); + InitialiserGraphique(); + CreerFenetre(50, 50, 700, 500); + while(choix == 0){ + ChoisirCouleurDessin(CouleurParNom("black")); + DessinerRectangle(100, 100, 200, 50); + EcrireTexte(120, 135, "Rejouer ?", 2); + DessinerRectangle(400, 100, 200, 50); + EcrireTexte(420, 135, "Quitter ?", 2); + if(victoire == 1){ + EcrireTexte(300, 235, "Joueur 1 a gagner !", 2); + }else if (victoire == 2){ + EcrireTexte(300, 235, "Joueur 2 a gagner !", 2); + } + if(choix == 5){ + return EXIT_SUCCESS; + } + } + } } diff --git a/taille.c b/taille.c index cbaa2fe..61f8101 100644 --- a/taille.c +++ b/taille.c @@ -1,41 +1,6 @@ #include -/* Code permettant de choisir la taille de la grille en fonction du chiffre que l'utilisateur a entrer qui est compris entre 3 et 9 */ - -int GererChoixTaille(){ - int taille = 0, SourisX = 0, SourisY = 0; - while(taille == 0){ - AfficherSelectionBoutton(); - if(SourisCliquee()){ - SourisX = _X; /* Met les coordonés de la souris si le joueur a cliquer dans SourisX et SourisY */ - SourisY = _Y; - } - /* Vérifi si le joueur a cliquer dans la zone d'un des choix de taille de grille */ - if(SourisX >= 100 && SourisX <= 150 && SourisY >= 100 && SourisY <= 200){ - taille = 3; - }else if(SourisX >= 200 && SourisX <= 250 && SourisY >= 100 && SourisY <= 200){ - taille = 4; - }else if(SourisX >= 300 && SourisX <= 350 && SourisY >= 100 && SourisY <= 200){ - taille = 5; - }else if(SourisX >= 400 && SourisX <= 450 && SourisY >= 100 && SourisY <= 200){ - taille = 6; - }else if(SourisX >= 500 && SourisX <= 550 && SourisY >= 100 && SourisY <= 200){ - taille = 7; - }else if(SourisX >= 100 && SourisX <= 150 && SourisY >= 250 && SourisY <= 350){ - taille = 8; - }else if(SourisX >= 200 && SourisX <= 250 && SourisY >= 250 && SourisY <= 350){ - taille = 9; - } - } - if(taille != 0){ - return taille; - } -} - - - - /* Fonction qui affiche le cadre des bouttons et affiche une image représentant la taille du tableau disponible */ void AfficherSelectionBoutton(){ DessinerSegment(100, 100, 150, 100); @@ -90,3 +55,34 @@ void AfficherSelectionBoutton(){ +/* Code permettant de choisir la taille de la grille en fonction du chiffre que l'utilisateur a entrer qui est compris entre 3 et 9 */ + +int GererChoixTaille(){ + int taille = 0, SourisX = 0, SourisY = 0; + while(taille == 0){ + AfficherSelectionBoutton(); + if(SourisCliquee()){ + SourisX = _X; /* Met les coordonés de la souris si le joueur a cliquer dans SourisX et SourisY */ + SourisY = _Y; + } + /* Vérifi si le joueur a cliquer dans la zone d'un des choix de taille de grille */ + if(SourisX >= 100 && SourisX <= 150 && SourisY >= 100 && SourisY <= 200){ + taille = 3; + }else if(SourisX >= 200 && SourisX <= 250 && SourisY >= 100 && SourisY <= 200){ + taille = 4; + }else if(SourisX >= 300 && SourisX <= 350 && SourisY >= 100 && SourisY <= 200){ + taille = 5; + }else if(SourisX >= 400 && SourisX <= 450 && SourisY >= 100 && SourisY <= 200){ + taille = 6; + }else if(SourisX >= 500 && SourisX <= 550 && SourisY >= 100 && SourisY <= 200){ + taille = 7; + }else if(SourisX >= 100 && SourisX <= 150 && SourisY >= 250 && SourisY <= 350){ + taille = 8; + }else if(SourisX >= 200 && SourisX <= 250 && SourisY >= 250 && SourisY <= 350){ + taille = 9; + } + } + if(taille != 0){ + return taille; + } +} \ No newline at end of file diff --git a/verificationblock.c b/verificationblock.c index 5ab91b7..a05b3f3 100644 --- a/verificationblock.c +++ b/verificationblock.c @@ -4,7 +4,7 @@ int VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner){ - int placement = 1, placementX = 0, placementY = 0; + int placementX = 0, placementY = 0; if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ placementX = initialisationXbox(SourisX, maxX, taille); placementY = initialisationYbox(SourisY, maxY, taille);