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

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Игра "Памет": Точкуване и победа

Нашата игра е почти готова! Липсва ѝ само още едно нещо: точкуването. Ето напомняне за тази част от правилата.
Целта на играта е да обърнем всички плочки с лицето нагоре (т.е. да намерим всички съвпадащи двойки изображения) за някъв минимален брой опити. Това означава, че по-малкият брой опити означава по-добър резултат.
Как проследяваме броя на опитите? Ами, "опит" е всеки път, когато обърнеш две плочки, които отговарят на нашия if блок, който проверява дали flippedTiles.length === 2. Можем да добавим нова глобална променлива numTries, която да увеличаваме в това условие.
if (flippedTiles.length === 2) {
  numTries++;
  ...
}
Искаме да покажем резултата, когато играта свърши – когато играчът намери всички еднакви плочки. Как проверяваме за това? Сещам се за два начина:
  1. Обхождаме масива от плочки и проверяваме дали isMatch е true за всички тях.
  2. Използваме глобална променлива, за да пазим броя плочки, които играчът е намерил, и проверяваме дали съвпада с общия брой възможни съвпадения.
Натъкнахме се на нещо подобно по-рано, и тогава избрахме възможността да не обхождаме целия цикъл всеки път. Нека направим същото и тук, възможност 2.
Първо инициализираме numMatches със стойност 0, на същото място, където инициализираме всички останали глобални променливи за състоянието на играта:
var numMatches = 0;
След това вътре в if проверката за еднакви плочки увеличаваме стойността на променливата numMatches:
if (flippedTiles[0].face === flippedTiles[1].face) {
  flippedTiles[0].isMatch = true;
  flippedTiles[1].isMatch = true;
  flippedTiles.length = 0;
  numMatches++;
}
В края на нашата функция draw, проверяваме дали играчът е открил всички еднакви плочки и показваме поздравителен текст:
if (numMatches === tiles.length/2) {
  fill(0, 0, 0);
  text("Намери всички плочки след " + numTries + " опита",
       20, 360);
}
Можеш да опиташ, но може да ти отнеме време да спечелиш (без да се обиждаш, разбира се, и на мен ми трябваше време!).
Ето един съвет за тестване на трудно достъпни части от една програма – модифицирай играта си временно, така че да можеш по-бързо да достигнеш до тези места. Например в тази игра можеш да смениш NUM_ROWS и NUM_COLS с по-малки числа и така ще можеш да завършиш играта по-бързо. Опитай това отдолу!

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.