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