Les images se retournent après 2 clics

This commit is contained in:
Mathieu PROAL 2022-12-01 12:35:57 +01:00
parent c331621e5e
commit 7f5478f374
2 changed files with 36 additions and 13 deletions

View File

@ -13,7 +13,7 @@ int tirage_aleatoire(void){
int i, j; int i, j;
int nb,score; int nb,score;
int tab[40]; int tab[40];
int nb_paires=20; int nb_paires=10;
int positions[20][4]; int positions[20][4];
ChargerImage("Images/background.png",0,0,0,0,1024,576); ChargerImage("Images/background.png",0,0,0,0,1024,576);
@ -47,9 +47,9 @@ int tirage_aleatoire(void){
i=0; i=0;
for (pos_y=10;pos_y<=370;pos_y=pos_y+90){ for (pos_y=10;pos_y<=370;pos_y=pos_y+90){
for (pos_x=10;pos_x<=640;pos_x=pos_x+90){ for (pos_x=10;pos_x<=640;pos_x=pos_x+90){
/*if (tab[i]==-1){ if (tab[i]==-1){
pos_y=1000; pos_y=1000;
}*/ }
if (positions[tab[i]][0]==0){ if (positions[tab[i]][0]==0){
positions[tab[i]][0]=pos_x; positions[tab[i]][0]=pos_x;
positions[tab[i]][1]=pos_y; positions[tab[i]][1]=pos_y;

41
jeu.c
View File

@ -18,6 +18,7 @@ int jeu(int position[20][4]){
couleur c=CouleurParComposante(0,0,0); couleur c=CouleurParComposante(0,0,0);
temps2=Microsecondes(); temps2=Microsecondes();
while(score<20){ while(score<20){
printf("\n\nVoici le score: %d\n", score);
temps=(Microsecondes()-temps2)/1000000; temps=(Microsecondes()-temps2)/1000000;
//if(temps!=temps3){ //if(temps!=temps3){
snprintf(tempstab,50,"%ld secondes ecoulees",temps); snprintf(tempstab,50,"%ld secondes ecoulees",temps);
@ -29,7 +30,10 @@ int jeu(int position[20][4]){
EcrireTexte(867,100,tempstab,0); EcrireTexte(867,100,tempstab,0);
//} //}
temps3=temps; temps3=temps;
for (repet=0;repet<3;repet++){ repet=0;
comparer[0]="vide";
comparer[1]="vide";
while (repet<2){
if (SourisCliquee()){ if (SourisCliquee()){
clic_x=_X; clic_x=_X;
clic_y=_Y; clic_y=_Y;
@ -57,22 +61,41 @@ int jeu(int position[20][4]){
if (im_x!=0 && im_y!=0){ if (im_x!=0 && im_y!=0){
for (i=0;i<20;i++){ for (i=0;i<20;i++){
for (j=0;j<2;j++){ for (j=0;j<2;j++){
if (position[i][(j*2)]==im_x){ if (position[i][(j*2)]==im_x && position[i][(j*2+1)]==im_y){
if (position[i][(j*2+1)]==im_y){ g=i+1;
g=i+1; snprintf(affichage,50,"Images/image%d.png",g);
snprintf(affichage,50,"Images/image%d.png",g); printf("Voici repet: %d\n", repet);
comparer[repet]=affichage; printf("Voici affichage: %s\n", affichage);
ChargerImage(affichage,im_x,im_y,0,0,80,80); comparer[repet]=affichage;
} printf("Voici comparer[0]: %s\n", comparer[0]);
printf("Voici comparer[1]: %s\n\n", comparer[1]);
ChargerImage(affichage,im_x,im_y,0,0,80,80);
repet++;
} }
} }
} }
} }
} }
} }
printf("Voici comparer[0]: %s\n", comparer[0]);
printf("Voici comparer[1]: %s\n", comparer[1]);
/*printf("%d\n", im_x);
printf("%d\n", im_y);*/
if (comparer[0]==comparer[1]){
score++;
}
if (score!=20){
sleep(1);
for (pos_y=10;pos_y<=370;pos_y=pos_y+90){
for (pos_x=10;pos_x<=640;pos_x=pos_x+90){
ChargerImage("Images/image0.png",pos_x,pos_y,0,0,80,80);
}
}
}
/*pour faire ça on va stocker temporairement quelles images (position) on a retournées dans tab[3], /*pour faire ça on va stocker temporairement quelles images (position) on a retournées dans tab[3],
on check si toutes les cases du tableau sont utilisées et si oui alors on sleep(1) et on recharge l'image 0 on check si toutes les cases du tableau sont utilisées et si oui alors on sleep(1) et on recharge l'image 0
sur les positions enregistrées dans le tab ensuite on revient au début de la boucle et on reset le tab[3] à 0.*/ sur les positions enregistrées dans le tab ensuite on revient au début de la boucle et on reset le tab[3] à 0.*/
} }
return score; FermerGraphique();
return EXIT_SUCCESS;
} }