💻
Крок 1: Дані карток і перемішування
Створи масив карток і алгоритм їх перемішування
Структура даних
Кожна картка — об'єкт з кількома властивостями:
js
{
id: 0, // унікальний номер
emoji: '🐶', // що зображено
isFlipped: false, // перевернута чи ні
isMatched: false // знайдено пару чи ні
}Для гри 4×4 нам потрібно 16 карток = 8 пар (кожне emoji двічі).
javascript
💬
Spread [...EMOJIS, ...EMOJIS] з'єднує масив з самим собою — 8 → 16 елементів. Потім .map() перетворює кожен emoji в об'єкт картки.
Алгоритм перемішування Fisher-Yates
Найкращий спосіб рівномірно перемішати масив:
js
function shuffleArray(array) {
const arr = [...array]; // копія (не мутуємо оригінал)
for (let i = arr.length - 1; i > 0; i--) {
// Випадковий індекс від 0 до i включно
const j = Math.floor(Math.random() * (i + 1));
// Обмін місцями
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}[arr[i], arr[j]] = [arr[j], arr[i]] — деструктуруючий обмін. Це JS-спосіб поміняти два значення без temp змінної.