From 44dc4968614c517d1155583089dbefc0123e68e8 Mon Sep 17 00:00:00 2001 From: Lyanis Souidi Date: Thu, 8 Dec 2022 16:08:35 +0100 Subject: [PATCH] Ajout du retournement des cartes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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. --- src/game.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/game.c b/src/game.c index 669d522..e6c9637 100644 --- a/src/game.c +++ b/src/game.c @@ -31,6 +31,7 @@ int game(int colonnes, int lignes) { unsigned long int timer; char *file = (char*)malloc(30 * sizeof(char)); size_t k, m; + card* last_card = NULL; int* tab = malloc(sizeof(int) * (colonnes * lignes)); srand(time(NULL)); @@ -121,9 +122,22 @@ int game(int colonnes, int lignes) { if (SourisCliquee()) { for (l = 0; l < lignes; l++) { 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]); 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]; } } }