From 776ade2daad671729b514c2af9848a0cfbee60b9 Mon Sep 17 00:00:00 2001 From: Nguyen Date: Tue, 29 Nov 2022 17:20:19 +0100 Subject: [PATCH] Jeu fini, manque encore le mode tricheur et l'affichage du temps --- Jeu.h | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 82 insertions(+), 12 deletions(-) diff --git a/Jeu.h b/Jeu.h index 3895c24..b78b0c2 100644 --- a/Jeu.h +++ b/Jeu.h @@ -4,7 +4,20 @@ #include #include #include "ChargerMode.h" +#include "ChargerMainMenu.h" +#define delta 1000000L +int GrilleComplete(int** grille, int l, int c) { + int i, f; + for (i=0; i=timer){ + timer=Microsecondes()+delta; + seconde++; + char temps[4]; + sprintf(temps,"%i",seconde); + ChoisirCouleurDessin(CouleurParNom("white")); + RemplirRectangle(1225,30,40,40); + ChoisirCouleurDessin(CouleurParNom("black")); + EcrireTexte(1230,70,temps, 2); + } + return seconde; +} + void DeuxiemeCarte(int carte,int f, int i) { AfficherSprite(carte,432+(124*f),162+(124*i)); } -void PremiereCarte(int ** grille, int carte,int nomCarte, int f, int i) { +int** PremiereCarte(int ** grille, int carte,int nomCarte, int f, int i, int seconde) { int ligne, colonne; int carte1=nomCarte; int carte2; - int visible=1; - time_t suivant; int asec=1; - char str[50]; + int visible=1; int deuxiemecarte=0; + unsigned long suivant; + unsigned long timer=Microsecondes()+delta; + char str[50], temps[4]; AfficherSprite(carte,432+(124*f),162+(124*i)); while (!deuxiemecarte) { + if (Microsecondes()>=timer){ + timer=Microsecondes()+delta; + seconde++; + sprintf(temps,"%i",seconde); + ChoisirCouleurDessin(CouleurParNom("white")); + RemplirRectangle(1225,30,40,40); + ChoisirCouleurDessin(CouleurParNom("black")); + EcrireTexte(1230,70,temps, 2); + } if (SourisCliquee()) { SourisPosition(); for (ligne=0; ligne<4; ligne++) { for (colonne=0; colonne<4; colonne++) { - if (_X>422+(124*colonne) && _X <422+(124*colonne)+84 && _Y>152+(124*ligne) && _Y < 152+(124*ligne)+84 &&(ligne!=i || colonne!=f)) { + if (_X>422+(124*colonne) && _X<422+(124*colonne)+84 + && _Y>152+(124*ligne) && _Y < 152+(124*ligne)+84 + &&(ligne!=i || colonne!=f) + && grille[ligne][colonne]!=0) + { carte2=grille[ligne][colonne]; sprintf(str,"./images/%i.png",grille[ligne][colonne]); carte=ChargerSprite(str); DeuxiemeCarte(carte,colonne,ligne); - suivant=time(NULL); + suivant=Microsecondes()+delta; if (!ComparerCartes(carte1,carte2)){ while(asec){ - if (time(NULL)==suivant+1) { + if (Microsecondes()>=suivant) { carte=ChargerSprite("./images/wood2.png"); AfficherSprite(carte,422+(124*f),152+(124*i)); AfficherSprite(carte,422+(124*colonne),152+(124*ligne)); @@ -50,36 +92,64 @@ void PremiereCarte(int ** grille, int carte,int nomCarte, int f, int i) { } } } + else { + grille[ligne][colonne]=0; + grille[i][f]=0; + } deuxiemecarte=1; } } } } } + return grille; } void jeu(int** grille, int difficulte) { - int tricheur=0; - int i, f; + int jeutourne=1; + int i, f, seconde=0; int carte; + char temps[4]; char str[50]; + unsigned long timer=Microsecondes()+delta; + sprintf(temps,"%i",seconde); + ChoisirCouleurDessin(CouleurParNom("white")); + RemplirRectangle(1225,30,40,40); + ChoisirCouleurDessin(CouleurParNom("black")); + EcrireTexte(1230,70,temps, 2); if (difficulte==1) { - while(!tricheur) { + while(jeutourne) { + if (Microsecondes()>=timer){ + timer=Microsecondes()+delta; + seconde++; + sprintf(temps,"%i",seconde); + ChoisirCouleurDessin(CouleurParNom("white")); + RemplirRectangle(1225,30,40,40); + ChoisirCouleurDessin(CouleurParNom("black")); + EcrireTexte(1230,70,temps, 2); + } if (SourisCliquee()) { SourisPosition(); for (i=0; i<4; i++) { for (f=0; f<4; f++) { - if (_X>422+(124*f) && _X <422+(124*f)+84 && _Y>152+(124*i) && _Y < 152+(124*i)+84) { + if (_X>422+(124*f) && _X <422+(124*f)+84 + && _Y>152+(124*i) && _Y < 152+(124*i)+84 + && grille[i][f]!=0) + { sprintf(str,"./images/%i.png",grille[i][f]); carte=ChargerSprite(str); AfficherSprite(carte,432+(124*f),162+(124*i)); - PremiereCarte(grille, carte, grille[i][f], f,i); + grille=PremiereCarte(grille, carte, grille[i][f], f, i, seconde); f=3; i=3; } } } } + if (GrilleComplete(grille, 4, 4)) { + puts("Félicitation!"); + jeutourne=0; + } } } }