FASE 4 - COMPROBAR CARTES ⏰ 15' approx
Un cop tenim les cartes guardades, podem començar a formar parelles. Les parelles es formen quan dues cartes estan girades, és a dir, quan CartesLlevades és igual a 2; per tant, afegim aquesta nova condició. Aquesta vegada, el bloc de Control es col·locarà fora del bloc anterior, ja que, havent-hi dues cartes ja girades, no ens interessa comprovar els altres dos estats que són per guardar les cartes.
Com que el bloc de Canviar disfressa també el tenim fora i només es poden girar dues cartes, moguem aquest bloc. Només girarà quan CartesLlevades sigui igual a 0 i quan CartasLlevades sigui igual a 1. Quedant de la següent manera:
Arreglat això, ja ens podem posar amb la lògica per comprovar les cartes. Per començar, crearem un nou esdeveniment que es preocuparà de gestionar les cartes en cas que siguin o no siguin iguals.
Anem als blocs d'Esdeveniments i afegim el bloc “quan rebem el missatge1” i crearem un nou missatge amb el nom “ComprovarCartes”.
Aquest esdeveniment s'ha de cridar quan CartasLlevades sigui igual a 2. Afegim el bloc “enviar missatge1 i esperar”, on canviarem el missatge1 per ComprovarCartes. Esperem, perquè volem que es compleixi el missatge abans de fer qualsevol altra cosa, perquè les cartes tinguin temps per girar-se o desaparèixer.
Ara, dins de ComprovarCartes, comprovarem si les dues cartes llevades són iguals o no. Afegim un bloc de Control “si ____ llavors, si no ____” on comprovarem si els identificadors de les cartes són iguals.
Per comprovar si són iguals, afegim un bloc d'Operadors “_ = 50”, dins de la condició, on arrossegarem directament les variables Carta1 i Carta2. Aquest operador, es encarregarà de comprovar la igualtat entre Carta1 i Carta2.
Si es compleix la condició, les cartes haurien de “desaparèixer”, ja que no volem que s'elimini l'objecte, afegirem un bloc d'Aparença “amagar”, això farà que la carta no s'elimini, sinó que no es vegi per pantalla.
Si no es compleix la condició, les cartes haurien de “girar-se”. Per això, anem als blocs d'Aparença a “canviar disfressa a CardBack”, que és la carta del revés.
A Scratch, tots els objectes poden rebre el mateix missatge, per tant, si dues cartes són iguals i aquestes s'amaguen, totes les cartes s'amagaran. Per evitar que això passi, afegim una condició a tota la crida perquè només afecti a les cartes ja girades.
Podem comprovar si una carta està girada pel nombre de disfressa que porta. Si anem a la finestra de Disfresses, podem veure que la carta girada és el número 2. Sabent això, a la finestra de Codi, afegim que si el “nombre de disfressa = 2” llavors realitzarà la comprovació de cartes, sinó no farà res.
Finalment, caldria afegir algunes coses. Quan es comproven les cartes i aquestes s'amaguen o giren, no haurien de quedar cartes llevades. Perquè això es compleixi, afegim dins del bloc “si CartesLlevades = 2 llavors” un bloc de Variables, on donarem a CartesLlevades el valor 0. Aquest nou bloc és “donar a CartesLlevades el valor 0”.
Una altra cosa a afegir seria un temps d'espera abans que es cridi a ComprovarCartes. Aquest temps és necessari perquè quan es seleccionin dues cartes, es vegi la imatge de la Carta2 abans que aquesta desaparegui.
Per fer això, afegim un bloc de Control “esperar 1 segon”. Canviarem el valor 1 per 0.2, perquè no estigui tant de temps a la pantalla.
L'última cosa a afegir seria el bloc d'Aparença “mostrar”, aquest bloc s'encarregarà que quan comenci una nova partida, és a dir, quan es premi la Bandera verda, les cartes que s'havien amagat tornin a aparèixer per pantalla.