M9 | L12 – Joc de memorie IV

Astăzi vom afla despre:

  • Scor si final

Aplicațiile pe care le vom folosi sunt:

Khan Academy

PROIECTE:

Joc de memorie

Exemplu: https://www.khanacademy.org/computer-programming/joc-memorie-04/5279987195133952

Scor si castig

Jocul nostru „Memorie” este aproape complet! Nu lipsește decât un lucru: scorul. Iată un memento al acelei părți a regulilor jocului:

Scopul jocului este de a obține toate plăcile răsucite cu fața în sus (adică, găsiți toate perechile de imagini potrivite) în cel mai mic număr de încercări. Asta înseamnă că un număr mai mic de încercări sunt scoruri mai bune.

Cum urmărim numărul de încercări? Ei bine, o „încercare” este de fiecare dată când ați răsturnat peste două dale, ceea ce corespunde blocului nostru if care verifică flippedTiles.length === 2. Putem adăuga o nouă variabilă globală, numTries, pe care o incrementăm în interiorul condiționalului.

if (flippedTiles.length === 2) {

  numTries++;

  …

}

Vrem să afișăm scorul când jocul s-a terminat – când jucătorul a egalat toate piesele. Cum verificăm asta? Mă pot gândi la două opțiuni:

  1. Iterăm prin gama noastră de dale și verificăm dacă isMatch este adevărat pentru toate acestea.
  2. Folosim o variabilă globală pentru a urmări câte meciuri a găsit jucătorul și apoi verificăm dacă au realizat numărul total de meciuri posibile.

Am avut o dezbatere similară mai devreme și am mers cu opțiunea în care nu trebuie să repetăm de fiecare dată întreaga matrice. Să mergem din nou pentru asta, opțiunea 2.

Mai întâi inițializăm numMatches la 0, în același loc în care inițializăm toate celelalte variabile globale ale stării de joc:

var numMatches = 0;

Apoi, în interiorul blocului if pentru dale potrivite, vom incrementa variabila numMatches:

if (flippedTiles[0].face === flippedTiles[1].face) {

  flippedTiles[0].isMatch = true;

  flippedTiles[1].isMatch = true;

  flippedTiles.length = 0;

  numMatches++;

}

La sfârșitul funcției noastre de extragere, verificăm dacă jucătorul a găsit toate meciurile și apoi afișăm un text de felicitare utilizatorului:

if (numMatches === tiles.length/2) {

  fill(0, 0, 0);

  text(„You found them all in ” + numTries + ” tries”,

       20, 360);

}

Final: https://www.khanacademy.org/computer-programming/joc-memorie-04/5279987195133952