Średniozaawansowany
+80 XP

👋 Zacznij uczyć się JavaScript już teraz — za darmo!

💻

Krok 1: Dane kart i tasowanie

Stwórz tablicę kart i algorytm tasowania

Struktura danych

Każda karta to obiekt z kilkoma właściwościami:

js
{
  id: 0,            // unikalny numer
  emoji: '🐶',     // co jest pokazane
  isFlipped: false, // odkryta czy nie
  isMatched: false  // znaleziono parę czy nie
}

Dla gry 4×4 potrzebujemy 16 kart = 8 par (każde emoji dwa razy).

javascript
💬

Spread [...EMOJIS, ...EMOJIS] łączy tablicę z samą sobą — 8 → 16 elementów. Następnie .map() zamienia każde emoji w obiekt karty.

Algorytm tasowania Fisher-Yates

Najlepszy sposób na równomierne tasowanie tablicy:

js
function shuffleArray(array) {
  const arr = [...array]; // kopia (nie mutuj oryginału)
  for (let i = arr.length - 1; i > 0; i--) {
    // Losowy indeks od 0 do i włącznie
    const j = Math.floor(Math.random() * (i + 1));
    // Zamiana
    [arr[i], arr[j]] = [arr[j], arr[i]];
  }
  return arr;
}

[arr[i], arr[j]] = [arr[j], arr[i]] — zamiana przez destrukturyzację. Sposób JavaScript na zamianę dwóch wartości bez zmiennej tymczasowej.

Komentarze

Zaloguj się lub Zacznij aby zostawić komentarz.