Основно съдържание
Програмиране
Курс: Програмиране > Раздел 4
Урок 5: Създаване на игра за тестване на паметтаИгра "Памет": Точкуване и победа
Нашата игра е почти готова! Липсва ѝ само още едно нещо: точкуването. Ето напомняне за тази част от правилата.
Целта на играта е да обърнем всички плочки с лицето нагоре (т.е. да намерим всички съвпадащи двойки изображения) за някъв минимален брой опити. Това означава, че по-малкият брой опити означава по-добър резултат.
Как проследяваме броя на опитите? Ами, "опит" е всеки път, когато обърнеш две плочки, които отговарят на нашия if блок, който проверява дали
flippedTiles.length === 2
. Можем да добавим нова глобална променлива numTries
, която да увеличаваме в това условие.if (flippedTiles.length === 2) {
numTries++;
...
}
Искаме да покажем резултата, когато играта свърши – когато играчът намери всички еднакви плочки. Как проверяваме за това? Сещам се за два начина:
- Обхождаме масива от плочки и проверяваме дали
isMatch
еtrue
за всички тях. - Използваме глобална променлива, за да пазим броя плочки, които играчът е намерил, и проверяваме дали съвпада с общия брой възможни съвпадения.
Натъкнахме се на нещо подобно по-рано, и тогава избрахме възможността да не обхождаме целия цикъл всеки път. Нека направим същото и тук, възможност 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
с по-малки числа и така ще можеш да завършиш играта по-бързо. Опитай това отдолу!Искаш ли да се присъединиш към разговора?
Все още няма публикации.