If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Pexeso: Bodování a výhra

Naše hra "pexeso" je téměř dokončena! Chybí jí jen jedna věc: bodování. Zde je připomenutí této části herních pravidel:
Cílem hry je otočit všechny kartičky vzhůru (tj. najít všechny odpovídající dvojice obrázků) s co nejmenším počtem pokusů. To znamená, že nižší počet pokusů je lepší skóre.
Jak zaznamenáme počet pokusů? "Pokus" je pokaždé, když otočíš dvě kartičky, což odpovídá bloku if, který ověřuje flippedTiles.length === 2. Můžeme přidat novou globální proměnnou, numTries, kterou zvýšíme uvnitř této podmínky.
if (flippedTiles.length === 2) {
  numTries++;
  ...
}
Když hra skončí, chceme zobrazit výsledné skóre - když hráč posbírá všechny páry. Jak to uděláme? Máme dvě možnosti:
  1. Budeme iterovat v našem poli kartiček a ověřovat, zda je isMatch true pro všechny kartičky.
  2. Použijeme globální proměnnou pro sledování počtu párů nalezených hráčem, přičemž následně ověříme, zda hráč získal celkový počet možných párů.
Podobnou rozpravu jsme vedli již dříve a nakonec jsme se rozhodli pro možnost, kde nemusíme pokaždé iterovat v celém poli. Pojďme si proto opět zvolit možnost 2.
Nejprve inicializujeme numMatches na 0 na stejném místě, kde inicializujeme všechny naše ostatní globální proměnné herního stavu:
var numMatches = 0;
Pak uvnitř bloku if pro posbírané páry zvyšujeme proměnnou numMatches:
if (flippedTiles[0].face === flippedTiles[1].face) {
  flippedTiles[0].isMatch = true;
  flippedTiles[1].isMatch = true;
  flippedTiles.length = 0;
  numMatches++;
}
Na konci naší funkce draw zkontrolujeme, zda hráč našel všechny páry a pak uživateli zobrazíme nějakou vítěznou zprávu:
if (numMatches === tiles.length/2) {
  fill(0, 0, 0);
  text("Nalezeno během " + numTries + " pokusů",
       20, 360);
}
Můžeš si to vyzkoušet níže, ale možná ti bude chvíli trvat, než se dostaneš až k vítězné zprávě (nic proti tobě, samozřejmě i nám to nějakou tu chvíli zabere!).
Zde je tip, který se ti hodí kdykoli, když budeš testovat určité části tvé hry, které jsou těžko dosažitelné - dočasně tvé hry uprav tak, ať je jednodušší se tam dostat. Například v této hře změň NUM_ROWS a NUM_COLS na menší čísla a budeš ji moci dokončit mnohem rychleji. Teď to zkus níže!

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.