From bb449b45a1e26458234bc889ec4557abf9d16371 Mon Sep 17 00:00:00 2001 From: nguyenh <nguyenh@Nguyen.myguest.virtualbox.org> Date: Sun, 11 Dec 2022 15:08:32 +0100 Subject: [PATCH] =?UTF-8?q?Derni=C3=83ers=20travaux,=20bug=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChargerMode.c | 162 +++++++++++++++++++++++++ ChargerMode.h | 150 ++--------------------- Jeu.c | 311 ++++++++++++++++++++++++++++++++++++++++++++++++ Jeu.h | 219 ++-------------------------------- images/hard.png | Bin 8906 -> 0 bytes images/soon.png | Bin 0 -> 6124 bytes 6 files changed, 497 insertions(+), 345 deletions(-) create mode 100644 ChargerMode.c create mode 100644 Jeu.c delete mode 100644 images/hard.png create mode 100644 images/soon.png diff --git a/ChargerMode.c b/ChargerMode.c new file mode 100644 index 0000000..c9018c9 --- /dev/null +++ b/ChargerMode.c @@ -0,0 +1,162 @@ +#include <stdlib.h> +#include <graph.h> +#include <string.h> +#include <time.h> +#include <stdio.h> +#include "ChargerMode.h" + +int** CreerGrille(int* tab, int nbligne, int nbcolonne) { + /*Fonction qui permet de mélanger les cartes de façon aléatoire et les stocker dans un tableau 2D + Prend en argument un tableau, le nombre de ligne et colonne (nbligne*nbcolonne=longeur du tableau) + Renvoie un tableau 2D*/ + srand(time(NULL)); + int** grille = calloc(nbligne, sizeof(int*)); + for (int c = 0; c < nbcolonne; c++) { + grille[c] = calloc(nbcolonne, sizeof(int)); + } + int i; + int image; + int ligne; + int colonne; + int taille =(nbcolonne*nbligne)-1; + for (ligne=0;ligne<nbligne;ligne++) { + for (colonne=0;colonne<nbcolonne;colonne++) { + if (taille>=1) { + image=rand() % taille; + } + else { + image=0; + } + grille[ligne][colonne]=tab[image]; + for (i=image;i<taille;i++) { + tab[i]=tab[i+1]; + } + taille--; + } + } + return grille; +} + +void CacherGrille(int** grille, int difficulte, int i, int f) { + /*Fonction qui dessine une grille de cartes de dos*/ + int ligne; + int colonne; + int sprite; + if (difficulte==1) { + sprite=ChargerSprite("./images/wood2.png"); + for (ligne=0;ligne<4;ligne++) { + for (colonne=0;colonne<4;colonne++) { + if (grille[ligne][colonne]!=0 && ((ligne!=i) || (colonne !=f))) { + AfficherSprite(sprite,422+(124*colonne),152+(124*ligne)); + } + } + } + } + else if (difficulte==2) { + sprite=ChargerSprite("./images/wood2.png"); + for (ligne=0;ligne<6;ligne++) { + for (colonne=0;colonne<6;colonne++) { + if (grille[ligne][colonne]!=0 && ((ligne!=i) || (colonne !=f))) { + AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); + } + } + } + } + LibererSprite(sprite); +} + +void AfficherGrille(int** grille, int difficulte) { + /*Fonction qui dévoile tous les cartes, utile en mode tricheur*/ + int ligne; + int colonne; + int image; + int sprite; + char str[50]; + AfficherSprite(sprite,380,110); + if (difficulte==1) { + for (ligne=0;ligne<4;ligne++) { + for (colonne=0;colonne<4;colonne++) { + 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++) { + if (grille[ligne][colonne]!=0) { + sprintf(str,"./images/%i.png", grille[ligne][colonne]); + sprite=ChargerSprite(str); + AfficherSprite(sprite,318+(114*colonne),48+(114*ligne)); + LibererSprite(sprite); + } + } + } + } +} + +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; + char str[50]; + int tab[16]; + int** grille; + for (i=0; i<16; i=i+2) { + tab[i]=cpt; + tab[i+1]=cpt; + cpt+=1; + } + grille=CreerGrille(tab,4,4); + CacherGrille(grille, 1, -1, -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; + char str[50]; + int tab[36]; + int** grille; + for (i=0; i<36; i=i+2) { + tab[i]=cpt; + tab[i+1]=cpt; + cpt+=1; + } + grille=CreerGrille(tab,6,6); + CacherGrille(grille, 2, -1, -1); + return grille; +} + +void ChargerMainMenu() { + /*Afficher la fenêtre menu*/ + int panneau; + panneau=ChargerSprite("./images/scroll2.png"); + ChargerImageFond("./images/japanbg4.jpg"); + ChargerImage("./images/scroll.png",242,15,-0,-0,817,300); + ChargerImage("./images/matchpairs.png",350,77,-0,-0,598,54); + AfficherSprite(panneau,445,230); + ChargerImage("./images/easy.png",520,273,-0,-0,318,54); + AfficherSprite(panneau,445,400); + ChargerImage("./images/medium.png",503,446,-0,-0,334,54); + AfficherSprite(panneau,445,570); + ChargerImage("./images/soon.png",527,610,-0,-0,318,54); + ChargerImage("./images/boutonquitter.png",1250,15,-0,-0,30,30); +} diff --git a/ChargerMode.h b/ChargerMode.h index f2dd50e..4418587 100644 --- a/ChargerMode.h +++ b/ChargerMode.h @@ -1,144 +1,16 @@ -#include <stdlib.h> -#include <graph.h> -#include <string.h> -#include <time.h> -#include <stdio.h> +#ifndef _CHARGERMODE_H +#define _CHARGERMODE_H -int** CreerGrille(int* tab, int nbligne, int nbcolonne) { - /*Fonction qui permet de mélanger les cartes de façon aléatoire et les stocker dans un tableau 2D - Prend en argument un tableau, le nombre de ligne et colonne (nbligne*nbcolonne=longeur du tableau) - Renvoie un tableau 2D*/ - srand(time(NULL)); - int** grille = calloc(nbligne, sizeof(int*)); - for (int c = 0; c < nbcolonne; c++) { - grille[c] = calloc(nbcolonne, sizeof(int)); - } - int i; - int image; - int ligne; - int colonne; - int taille =(nbcolonne*nbligne)-1; - for (ligne=0;ligne<nbligne;ligne++) { - for (colonne=0;colonne<nbcolonne;colonne++) { - if (taille>=1) { - image=rand() % taille; - } - else { - image=0; - } - grille[ligne][colonne]=tab[image]; - for (i=image;i<taille;i++) { - tab[i]=tab[i+1]; - } - taille--; - } - } - return grille; -} +int** CreerGrille(int* tab, int nbligne, int nbcolonne); -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/wood2.png"); - for (ligne=0;ligne<4;ligne++) { - for (colonne=0;colonne<4;colonne++) { - if (grille[ligne][colonne]!=0) { - AfficherSprite(sprite,422+(124*colonne),152+(124*ligne)); - } - } - } - } - else if (difficulte==2) { - sprite=ChargerSprite("./images/wood2.png"); - for (ligne=0;ligne<6;ligne++) { - for (colonne=0;colonne<6;colonne++) { - if (grille[ligne][colonne]!=0) { - AfficherSprite(sprite,308+(114*colonne),38+(114*ligne)); - } - } - } - } -} +void CacherGrille(int** grille, int difficulte, int i, int f); -void AfficherGrille(int** grille, int difficulte) { - /*Fonction qui dévoile tous les cartes, utile en mode tricheur*/ - int ligne; - int colonne; - int image; - int sprite; - char str[50]; - AfficherSprite(sprite,380,110); - if (difficulte==1) { - for (ligne=0;ligne<4;ligne++) { - for (colonne=0;colonne<4;colonne++) { - 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++) { - 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); - } - } - } - } -} +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; - char str[50]; - int tab[16]; - int** grille; - for (i=0; i<16; i=i+2) { - tab[i]=cpt; - tab[i+1]=cpt; - cpt+=1; - } - grille=CreerGrille(tab,4,4); - CacherGrille(grille, 1); - return grille; -} +int** ChargerFacile(); -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; - char str[50]; - int tab[36]; - int** grille; - for (i=0; i<36; i=i+2) { - tab[i]=cpt; - tab[i+1]=cpt; - cpt+=1; - } - grille=CreerGrille(tab,6,6); - CacherGrille(grille, 2); - return grille; -} +int** ChargerMoyen(); + +void ChargerMainMenu(); + +#endif \ No newline at end of file diff --git a/Jeu.c b/Jeu.c new file mode 100644 index 0000000..7167942 --- /dev/null +++ b/Jeu.c @@ -0,0 +1,311 @@ +#include <stdlib.h> +#include <graph.h> +#include <string.h> +#include <time.h> +#include <stdio.h> +#include <pthread.h> +#include "ChargerMode.h" +#include "Jeu.h" + +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; + if (Microsecondes()>=timer){ + timer=Microsecondes()+delta; + seconde++; + } + return seconde; +} + +int tricher(int** grille, int difficulte, int i, int f) { + int touche, sprite; + int tempsdetriche=0; + int triche; + char str[50]; + char temps[4]; + unsigned long timer=Microsecondes()+delta; + AfficherGrille(grille, difficulte); + while (triche) { + if (Microsecondes()>=timer){ + timer=Microsecondes()+delta; + tempsdetriche++; + } + if (ToucheEnAttente()) { + touche= Touche(); + if (touche== 84 || 114){ + CacherGrille(grille, difficulte, i, f); + triche=0; + return tempsdetriche; + } + } + } + return tempsdetriche; +} + + +int GrilleComplete(int** grille, int l, int c) { + int i, f; + for (i=0; i<l; i++) { + for (f=0; f<c; f++) { + if (grille[i][f]!=0) { + return 0; + } + } + } + return 1; +} + +int ComparerCartes(int carte1, int carte2) { + if (carte1==carte2) { + return 1; + } + else { + return 0; + } +} + +int** DeuxiemeCarte(int ** grille, int carte,int nomCarte, int f, int i, int difficulte, int tempsdepart) { + int ligne, colonne; + int carte1=nomCarte, carte2,scroll; + int asec=1, seconde=0, tempsdetriche; + int deuxiemecarte=0; + unsigned long suivant; + unsigned long timer=time(NULL)+1; + char str[50], temps[4]; + if (difficulte==1) { + while (!deuxiemecarte) { + if (ToucheT()) { + tempsdetriche=tricher(grille, difficulte, i, f); + tempsdepart+=tempsdetriche; + } + if (time(NULL)>=timer){ + timer=time(NULL)+1; + seconde=time(NULL)-tempsdepart; + sprintf(temps,"%i",seconde); + scroll=ChargerSprite("./images/scroll3.png"); + AfficherSprite(scroll,1200,15); + LibererSprite(scroll); + ChoisirCouleurDessin(CouleurParComposante(224,36,28)); + EcrireTexte(1230,50,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) + && grille[ligne][colonne]!=0) + { + carte2=grille[ligne][colonne]; + sprintf(str,"./images/%i.png",grille[ligne][colonne]); + carte=ChargerSprite(str); + AfficherSprite(carte,432+(124*colonne),162+(124*ligne)); + LibererSprite(carte); + if (!ComparerCartes(carte1,carte2)){ + suivant=Microsecondes()+delta; + while(asec){ + 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 { + grille[ligne][colonne]=0; + grille[i][f]=0; + } + deuxiemecarte=1; + } + } + } + } + } + } /*fin difficulté facile*/ + else if (difficulte==2) { + while (!deuxiemecarte) { + if (ToucheT()) { + tempsdetriche=tricher(grille, difficulte, i, f); + tempsdepart+=tempsdetriche; + } + if (time(NULL)>=timer){ + timer=time(NULL)+1; + seconde=time(NULL)-tempsdepart; + sprintf(temps,"%i",seconde); + scroll=ChargerSprite("./images/scroll3.png"); + AfficherSprite(scroll,1200,15); + LibererSprite(scroll); + ChoisirCouleurDessin(CouleurParComposante(224,36,28)); + EcrireTexte(1230,50,temps, 2); + } + if (SourisCliquee()) { + SourisPosition(); + for (ligne=0; ligne<6; ligne++) { + for (colonne=0; colonne<6; colonne++) { + if (_X>308+(114*colonne) && _X<308+(114*colonne)+84 + && _Y>38+(114*ligne) && _Y < 38+(114*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); + AfficherSprite(carte,318+(114*colonne),48+(114*ligne)); + LibererSprite(carte); + if (!ComparerCartes(carte1,carte2)){ + suivant=Microsecondes()+delta; + while(asec){ + if (Microsecondes()>=suivant){ + carte=ChargerSprite("./images/wood2.png"); + AfficherSprite(carte,308+(114*f),38+(114*i)); + AfficherSprite(carte,308+(114*colonne),38+(114*ligne)); + LibererSprite(carte); + asec=0; + } + + } + } + else { + grille[ligne][colonne]=0; + grille[i][f]=0; + } + deuxiemecarte=1; + } + } + } + } + } + } + return grille; +} + +void * PremiereCarte(int** grille, int difficulte){ + int i, f, carte, tempsdetriche=0, seconde=0, scroll; + unsigned long tempsdepart=time(NULL); + unsigned long timer=time(NULL)+1; + char str[50], temps[4]; + if (difficulte==1) { + while (jeutourne) { + if (ToucheT()) { + tempsdetriche=tricher(grille, difficulte, -1, -1); + tempsdepart+=tempsdetriche; + } + if (time(NULL)>=timer){ + timer=time(NULL)+1; + seconde=time(NULL)-tempsdepart; + sprintf(temps,"%i",seconde); + scroll=ChargerSprite("./images/scroll3.png"); + AfficherSprite(scroll,1200,15); + LibererSprite(scroll); + ChoisirCouleurDessin(CouleurParComposante(224,36,28)); + EcrireTexte(1230,50,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 + && grille[i][f]!=0) + { + 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; + } + } + } + } + if (GrilleComplete(grille, 4, 4)) { + jeutourne=0; + } + + } + } + else if (difficulte==2) { + while (jeutourne) { + if (ToucheT()) { + tempsdetriche=tricher(grille, difficulte, -1, -1); + tempsdepart+=tempsdetriche; + } + if (time(NULL)>=timer){ + timer=time(NULL)+1; + seconde=time(NULL)-tempsdepart; + sprintf(temps,"%i",seconde); + scroll=ChargerSprite("./images/scroll3.png"); + AfficherSprite(scroll,1200,15); + LibererSprite(scroll); + ChoisirCouleurDessin(CouleurParComposante(224,36,28)); + EcrireTexte(1230,50,temps, 2); + } + if (SourisCliquee()) { + SourisPosition(); + for (i=0; i<6; i++) { + for (f=0; f<6; f++) { + if (_X>308+(114*f) && _X <308+(114*f)+84 + && _Y>38+(114*i) && _Y < 38+(114*i)+84 + && grille[i][f]!=0) + { + sprintf(str,"./images/%i.png",grille[i][f]); + carte=ChargerSprite(str); + AfficherSprite(carte,318+(114*f),48+(114*i)); + LibererSprite(carte); + grille=DeuxiemeCarte(grille, carte, grille[i][f], f, i, difficulte, tempsdepart); + f=5; + i=5; + } + } + } + } + if (GrilleComplete(grille, 6, 6)) { + jeutourne=0; + } + + } + } + ChargerImageFond("./images/japanbg.png"); + scroll=ChargerSprite("./images/scroll4.png"); + AfficherSprite(scroll,242,30); + scroll=ChargerSprite("./images/congrat.png"); + AfficherSprite(scroll,380,260); + sprintf(str,"You've finished in %i seconds",seconde); + ChoisirCouleurDessin(CouleurParComposante(224,36,28)); + EcrireTexte(480,345,str,2); + LibererSprite(scroll); + Touche(); +} +void jeu(int** grille, int difficulte) { + PremiereCarte(grille, difficulte); +} + +void ChargerDifficulte(int difficulte) { + /*Charge la difficulté choisi au menu principal*/ + if (difficulte==1) { + int** grille=ChargerFacile(); + jeu(grille, 1); + } + else if (difficulte=2) { + int** grille=ChargerMoyen(); + jeu(grille, 2); + } +} \ No newline at end of file diff --git a/Jeu.h b/Jeu.h index e5dde9c..09866c4 100644 --- a/Jeu.h +++ b/Jeu.h @@ -1,216 +1,23 @@ -#include <stdlib.h> -#include <graph.h> -#include <string.h> -#include <time.h> -#include <stdio.h> -#include <pthread.h> -#include "ChargerMode.h" +#ifndef _JEU_H +#define _JEU_H #define delta 1000000L -int jeutourne=1; +int ToucheT(); -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; - if (Microsecondes()>=timer){ - timer=Microsecondes()+delta; - seconde++; - } - return seconde; -} +int compteur(int seconde); -int tricher(int** grille, int difficulte) { - int touche; - int tempsdetriche=0; - int triche; - char temps[4]; - unsigned long timer=Microsecondes()+delta; - AfficherGrille(grille, difficulte); - while (triche) { - if (Microsecondes()>=timer){ - timer=Microsecondes()+delta; - tempsdetriche++; - } - if (ToucheEnAttente()) { - touche= Touche(); - if (touche== 84 || 114){ - CacherGrille(grille, difficulte); - triche=0; - return tempsdetriche; - } - } - } - return tempsdetriche; -} +int tricher(int** grille, int difficulte, int i, int f); +int GrilleComplete(int** grille, int l, int c); -int GrilleComplete(int** grille, int l, int c) { - int i, f; - for (i=0; i<l; i++) { - for (f=0; f<c; f++) { - if (grille[i][f]!=0) { - return 0; - } - } - } - return 1; -} +int ComparerCartes(int carte1, int carte2); -int ComparerCartes(int carte1, int carte2) { - if (carte1==carte2) { - return 1; - } - else { - return 0; - } -} +int** DeuxiemeCarte(int ** grille, int carte,int nomCarte, int f, int i, int difficulte, int tempsdepart); -int** DeuxiemeCarte(int ** grille, int carte,int nomCarte, int f, int i, int difficulte, int tempsdepart) { - int ligne, colonne; - int carte1=nomCarte, carte2,scroll; - int asec=1, seconde=0, tempsdetriche; - int deuxiemecarte=0; - unsigned long suivant; - unsigned long timer=time(NULL)+1; - char str[50], temps[4]; - if (difficulte==1) { - while (!deuxiemecarte) { - if (ToucheT()) { - tempsdetriche=tricher(grille, difficulte); - tempsdepart+=tempsdetriche; - } - if (time(NULL)>=timer){ - timer=time(NULL)+1; - seconde=time(NULL)-tempsdepart; - sprintf(temps,"%i",seconde); - scroll=ChargerSprite("./images/scroll3.png"); - AfficherSprite(scroll,1200,15); - LibererSprite(scroll); - ChoisirCouleurDessin(CouleurParNom("black")); - EcrireTexte(1230,50,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) - && grille[ligne][colonne]!=0) - { - carte2=grille[ligne][colonne]; - sprintf(str,"./images/%i.png",grille[ligne][colonne]); - carte=ChargerSprite(str); - AfficherSprite(carte,432+(124*colonne),162+(124*ligne)); - LibererSprite(carte); - if (!ComparerCartes(carte1,carte2)){ - suivant=Microsecondes()+delta; - while(asec){ - 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 { - grille[ligne][colonne]=0; - grille[i][f]=0; - } - deuxiemecarte=1; - } - } - } - } - } - } - return grille; -} +void * PremiereCarte(int** grille, int difficulte); -void * PremiereCarte(int** grille, int difficulte){ - int i, f, carte, tempsdetriche=0, seconde=0, scroll; - unsigned long tempsdepart=time(NULL); - unsigned long timer=time(NULL)+1; - char str[50], temps[4]; - if (difficulte==1) { - while (jeutourne) { - if (ToucheT()) { - tempsdetriche=tricher(grille, difficulte); - tempsdepart+=tempsdetriche; - } - if (time(NULL)>=timer){ - timer=time(NULL)+1; - seconde=time(NULL)-tempsdepart; - sprintf(temps,"%i",seconde); - scroll=ChargerSprite("./images/scroll3.png"); - AfficherSprite(scroll,1200,15); - LibererSprite(scroll); - ChoisirCouleurDessin(CouleurParComposante(224,36,28)); - EcrireTexte(1230,50,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 - && grille[i][f]!=0) - { - 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; - } - } - } - } - if (GrilleComplete(grille, 4, 4)) { - jeutourne=0; - } - - } - ChargerImageFond("./images/japanbg.png"); - scroll=ChargerSprite("./images/scroll4.png"); - AfficherSprite(scroll,242,30); - scroll=ChargerSprite("./images/congrat.png"); - AfficherSprite(scroll,380,260); - sprintf(str,"You've finished in %i seconds",seconde); - ChoisirCouleurDessin(CouleurParComposante(224,36,28)); - EcrireTexte(480,345,str,2); - LibererSprite(scroll); - Touche(); - } -} -void jeu(int** grille, int difficulte) { - PremiereCarte(grille, difficulte); -} +void jeu(int** grille, int difficulte); -void ChargerDifficulte(int difficulte) { - /*Charge la difficulté choisi au menu principal*/ - if (difficulte==1) { - int** grille=ChargerFacile(); - jeu(grille, 1); - } - else if (difficulte=2) { - int** grille=ChargerMoyen(); - jeu(grille, 2); - } -} \ No newline at end of file +void ChargerDifficulte(int difficulte); + +#endif \ No newline at end of file diff --git a/images/hard.png b/images/hard.png deleted file mode 100644 index 58fcce4b4d791aaa86e21ee30e3e4199d61cffeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8906 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 Y0wsaA3Awb*5C8xG07*qoM6N<$f|~hO(*OVf diff --git a/images/soon.png b/images/soon.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2e0d8bc5814f97ef412b33bef85d74a3ce5dfb GIT binary patch literal 6124 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 literal 0 HcmV?d00001