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 58fcce4..0000000
Binary files a/images/hard.png and /dev/null differ
diff --git a/images/soon.png b/images/soon.png
new file mode 100644
index 0000000..fd2e0d8
Binary files /dev/null and b/images/soon.png differ