#include #include #include int Trouvee(int* found, int carte){ //Cette fonction vérifie si la carte est présente dans le tableau found, qui contient toutes les paires trouvées int i; for (i=0;i<10;i++){ if (found[i] == carte) return 1; } return 0; } void DefinirCouleurs(couleur c[10]){ //Insère les couleurs dans le tableau c pris en argument c[0] = CouleurParNom("red"); c[1] = CouleurParNom("blue"); c[2] = CouleurParNom("green"); c[3] = CouleurParNom("yellow"); c[4] = CouleurParNom("pink"); c[5] = CouleurParNom("brown"); c[6] = CouleurParNom("grey"); c[7] = CouleurParNom("light blue"); c[8] = CouleurParNom("purple"); c[9] = CouleurParNom("orange"); } int ZoneRectangle(int upper_x, int upper_y, int lower_x, int lower_y){ //upper_x et upper_y sont les coordonnées du point supérieur gauche du rectangle //lower_x et lower_y sont les coordonnées du point inferieur droit du rectangle //La fonction renvoie 1 si la souris est dans la zone et renvoie 0 si elle n'y est pas SourisPosition(); int pos_x = _X; int pos_y = _Y; if ((pos_x >= upper_x) && (pos_x <= lower_x) && (pos_y >= upper_y) && (pos_y <= lower_y)) return 1; else return 0; } void DessinerGrille(int x_g, int y_g, int x_fen, int y_fen, int triche, int* found, int tab[4][5]){ // Dessine la grille des cartes en noir si le mode de triche est désactivé et dévoile les cartes si le mode triche est activé int i,j; couleur c[10]; int x = 0; int y = 0; int l_case = (x_fen-((10*x_g)+10))/x_g; int h_case = (y_fen-((10*y_g)+10))/y_g; DefinirCouleurs(c); if (triche == 0){ ChoisirCouleurDessin(CouleurParNom("black")); for(i=10;i temps_microsec + 1000000){ temps_microsec = temps_actuel; temps_ecoule = temps_ecoule + 1; printf("%d\n", temps_ecoule); } } if (temps_ecoule == temps_ancien+1){ temps_ancien = temps_ecoule; ChoisirCouleurDessin(CouleurParNom("black")); RemplirRectangle(675,25,160,30); ChoisirCouleurDessin(CouleurParNom("white")); sprintf(afficher_temps,"Time : %03ds",temps_ecoule); EcrireTexte(700,50,afficher_temps,1); } if (ToucheEnAttente()){ touche = Touche(); if (touche == XK_t){ Triche(&x); if (x==-1){ DessinerGrille(grille_x,4,1500,844,1,found,tab); } else{ DessinerGrille(grille_x,4,1500,844,0,found,tab); } } if (touche == XK_space) break; touche = 0; } if (SourisCliquee()){ if (x==1){ if (carte_1[0] == 0){ Jeu(grille_x,4,1500,844,carte_1,tab); if (Trouvee(found,carte_1[0])){ carte_1[0] = 0; } } else if (carte_2[0] == 0){ Jeu(grille_x,4,1500,844,carte_2,tab); if (carte_1[1] == carte_2[1] && carte_1[2] == carte_2[2]) carte_2[0] = 0; if (Trouvee(found,carte_2[0])) carte_2[0] = 0; } } } if (carte_1[0] == carte_2[0] && carte_1[0] != 0){ InsereTableau(carte_1[0], found); } if (carte_1[0] != 0 && carte_2[0] != 0){ carte_1[0] = 0; carte_1[1] = -1; carte_1[2] = -1; carte_2[0] = 0; carte_2[1] = -1; carte_2[2] = -1; temps = Microsecondes(); retourne_time = Microsecondes()+1000000; while (temps < retourne_time){ temps = Microsecondes(); } DessinerGrille(grille_x,4,1500,844,0,found,tab); } if (Victoire(found,grille_x,4)){ printf("Victoire !\n"); break; } } FermerGraphique(); return EXIT_SUCCESS; }