From 85417a67316b4475d2b7039f65d2125b31705e7e Mon Sep 17 00:00:00 2001 From: nguyenh Date: Fri, 2 Dec 2022 18:53:02 +0100 Subject: [PATCH] Bug Fixes --- ChargerMode.h | 44 +++++++++++++++++--------- Jeu.h | 85 ++++++++++++++++++++++++++------------------------- 2 files changed, 73 insertions(+), 56 deletions(-) diff --git a/ChargerMode.h b/ChargerMode.h index 421895a..f2dd50e 100644 --- a/ChargerMode.h +++ b/ChargerMode.h @@ -36,28 +36,28 @@ int** CreerGrille(int* tab, int nbligne, int nbcolonne) { return grille; } -void CacherGrille(int difficulte) { +void CacherGrille(int** grille, int difficulte) { /*Fonction qui dessine une grille de cartes de dos*/ int ligne; int colonne; int sprite; if (difficulte==1) { - sprite=ChargerSprite("./images/wood3.png"); - AfficherSprite(sprite,380,110); sprite=ChargerSprite("./images/wood2.png"); for (ligne=0;ligne<4;ligne++) { for (colonne=0;colonne<4;colonne++) { - AfficherSprite(sprite,422+(124*colonne),152+(124*ligne)); + if (grille[ligne][colonne]!=0) { + AfficherSprite(sprite,422+(124*colonne),152+(124*ligne)); + } } } } else if (difficulte==2) { - sprite=ChargerSprite("./images/wood4.png"); - AfficherSprite(sprite,265,10); sprite=ChargerSprite("./images/wood2.png"); for (ligne=0;ligne<6;ligne++) { for (colonne=0;colonne<6;colonne++) { - AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); + if (grille[ligne][colonne]!=0) { + AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); + } } } } @@ -74,18 +74,24 @@ void AfficherGrille(int** grille, int difficulte) { if (difficulte==1) { for (ligne=0;ligne<4;ligne++) { for (colonne=0;colonne<4;colonne++) { - sprintf(str,"./images/%i.png", grille[ligne][colonne]); - sprite=ChargerSprite(str); - AfficherSprite(sprite,432+(124*colonne),162+(124*ligne)); + if (grille[ligne][colonne]!=0){ + sprintf(str,"./images/%i.png", grille[ligne][colonne]); + sprite=ChargerSprite(str); + AfficherSprite(sprite,432+(124*colonne),162+(124*ligne)); + LibererSprite(sprite); + } } } } else if (difficulte==2) { for (ligne=0;ligne<6;ligne++) { for (colonne=0;colonne<6;colonne++) { - sprintf(str,"./images/%i.png", grille[ligne][colonne]); - sprite=ChargerSprite(str); - AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); + if (grille[ligne][colonne]!=0) { + sprintf(str,"./images/%i.png", grille[ligne][colonne]); + sprite=ChargerSprite(str); + AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); + LibererSprite(sprite); + } } } } @@ -93,7 +99,11 @@ void AfficherGrille(int** grille, int difficulte) { int** ChargerFacile() { /*Afficher la fenĂȘtre de jeu facile*/ + int sprite; ChargerImageFond("./images/japanbg.png"); + sprite=ChargerSprite("./images/wood3.png"); + AfficherSprite(sprite,380,110); + LibererSprite(sprite); int i; int f; int cpt=1; @@ -106,13 +116,17 @@ int** ChargerFacile() { cpt+=1; } grille=CreerGrille(tab,4,4); - CacherGrille(1); + CacherGrille(grille, 1); return grille; } int** ChargerMoyen() { /*Afficher la fenĂȘtre de jeu moyen*/ + int sprite; ChargerImageFond("./images/japanbg3.png"); + sprite=ChargerSprite("./images/wood4.png"); + AfficherSprite(sprite,265,10); + LibererSprite(sprite); int i; int f; int cpt=1; @@ -125,6 +139,6 @@ int** ChargerMoyen() { cpt+=1; } grille=CreerGrille(tab,6,6); - CacherGrille(2); + CacherGrille(grille, 2); return grille; } diff --git a/Jeu.h b/Jeu.h index e421d67..99bad68 100644 --- a/Jeu.h +++ b/Jeu.h @@ -9,6 +9,18 @@ int jeutourne=1; +int ToucheT() { + int touche; + if (ToucheEnAttente()) { + touche= Touche(); + if (touche== 84 || 114){ + return 1; + } + } + else { + return 0; + } +} int compteur(int seconde) { char temps[4]; unsigned long timer=Microsecondes()+delta; @@ -25,34 +37,25 @@ int tricher(int** grille, int difficulte) { int triche; char temps[4]; unsigned long timer=Microsecondes()+delta; - if (ToucheEnAttente()) { - touche= Touche(); - if (touche== 84 || 114) { - CacherGrille(difficulte); - AfficherGrille(grille, difficulte); - while (triche) { - if (Microsecondes()>=timer){ - timer=Microsecondes()+delta; - tempsdetriche++; - } - if (ToucheEnAttente()) { - touche= Touche(); - if (touche== 84 || 114){ - CacherGrille(difficulte); - triche=0; - return tempsdetriche; - } - } - } - return tempsdetriche; + AfficherGrille(grille, difficulte); + while (triche) { + if (Microsecondes()>=timer){ + timer=Microsecondes()+delta; + tempsdetriche++; } - else { - return tempsdetriche; + if (ToucheEnAttente()) { + touche= Touche(); + if (touche== 84 || 114){ + CacherGrille(grille, difficulte); + triche=0; + return tempsdetriche; + } } } return tempsdetriche; } + int GrilleComplete(int** grille, int l, int c) { int i, f; for (i=0; i=timer){ timer=time(NULL)+1; - seconde=time(NULL)-tempsdepart-tempsdetriche; + seconde=time(NULL)-tempsdepart; 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++) { @@ -108,25 +113,18 @@ int** DeuxiemeCarte(int ** grille, int carte,int nomCarte, int f, int i, int dif sprintf(str,"./images/%i.png",grille[ligne][colonne]); carte=ChargerSprite(str); AfficherSprite(carte,432+(124*colonne),162+(124*ligne)); - suivant=Microsecondes()+delta; + LibererSprite(carte); if (!ComparerCartes(carte1,carte2)){ + suivant=Microsecondes()+delta; while(asec){ - tempsdetriche=tricher(grille, difficulte); - if (time(NULL)>=timer){ - timer=time(NULL)+1; - seconde=time(NULL)-tempsdepart-tempsdetriche; - sprintf(temps,"%i",seconde); - ChoisirCouleurDessin(CouleurParNom("white")); - RemplirRectangle(1225,30,40,40); - ChoisirCouleurDessin(CouleurParNom("black")); - EcrireTexte(1230,70,temps, 2); - } - if (Microsecondes()>=suivant) { + if (Microsecondes()>=suivant){ carte=ChargerSprite("./images/wood2.png"); AfficherSprite(carte,422+(124*f),152+(124*i)); AfficherSprite(carte,422+(124*colonne),152+(124*ligne)); + LibererSprite(carte); asec=0; } + } } else { @@ -150,8 +148,10 @@ void * PremiereCarte(int** grille, int difficulte){ char str[50], temps[4]; if (difficulte==1) { while (jeutourne) { - tempsdetriche=tricher(grille, difficulte); - tempsdepart+=tempsdetriche; + if (ToucheT()) { + tempsdetriche=tricher(grille, difficulte); + tempsdepart+=tempsdetriche; + } if (time(NULL)>=timer){ timer=time(NULL)+1; seconde=time(NULL)-tempsdepart; @@ -172,6 +172,7 @@ void * PremiereCarte(int** grille, int difficulte){ sprintf(str,"./images/%i.png",grille[i][f]); carte=ChargerSprite(str); AfficherSprite(carte,432+(124*f),162+(124*i)); + LibererSprite(carte); grille=DeuxiemeCarte(grille, carte, grille[i][f], f, i, difficulte, tempsdepart); f=3; i=3; @@ -193,9 +194,11 @@ void jeu(int** grille, int difficulte) { void ChargerDifficulte(int difficulte) { /*Charge la difficultĂ© choisi au menu principal*/ if (difficulte==1) { - jeu(ChargerFacile(), 1); + int** grille=ChargerFacile(); + jeu(grille, 1); } else if (difficulte=2) { - jeu(ChargerMoyen(), 2); + int** grille=ChargerMoyen(); + jeu(grille, 2); } } \ No newline at end of file