1
0

Ajout du retournement des cartes

- Création d'un pointeur "last_card" vers la précedente carte sélectionnée afin de pouvoir la comparer avec la carte actuellement sélectionnée.
- Ajout de conditions pour verifier que la carte sélectionnée soit différente de la carte précédente.
- Ajout du délai d'une seconde puis du retournement des cartes si elles ne sont pas identiques.
This commit is contained in:
Lyanis SOUIDI 2022-12-08 16:08:35 +01:00
parent 25884773d6
commit 44dc496861

View File

@ -31,6 +31,7 @@ int game(int colonnes, int lignes) {
unsigned long int timer; unsigned long int timer;
char *file = (char*)malloc(30 * sizeof(char)); char *file = (char*)malloc(30 * sizeof(char));
size_t k, m; size_t k, m;
card* last_card = NULL;
int* tab = malloc(sizeof(int) * (colonnes * lignes)); int* tab = malloc(sizeof(int) * (colonnes * lignes));
srand(time(NULL)); srand(time(NULL));
@ -121,9 +122,22 @@ int game(int colonnes, int lignes) {
if (SourisCliquee()) { if (SourisCliquee()) {
for (l = 0; l < lignes; l++) { for (l = 0; l < lignes; l++) {
for (c = 0; c < colonnes; c++) { for (c = 0; c < colonnes; c++) {
if (check_zone(cards[l][c].zone, _X, _Y)) { if (check_zone(cards[l][c].zone, _X, _Y) && !cards[l][c].displayed && !cards[l][c].found) {
cards[l][c] = show_card(cards[l][c]); cards[l][c] = show_card(cards[l][c]);
coups = update_coups(coups+1); coups = update_coups(coups+1);
if (last_card != NULL) {
if (!last_card->found && last_card->displayed && (cards[l][c].zone.x != last_card->zone.x || cards[l][c].zone.y != last_card->zone.y)) {
if (cards[l][c].id == last_card->id) {
last_card->found = 1;
cards[l][c].found = 1;
} else {
wait(1);
cards[l][c] = hide_card(carte0, cards[l][c]);
*last_card = hide_card(carte0, *last_card);
}
}
}
last_card = &cards[l][c];
} }
} }
} }