Atölye › Hafıza Kartları › 20/25. adım

Bütün eşler bulundu

Ne yapıyoruz

Oyunun bir sonu olmalı: bütün kartlar eşleşince kazanırsın. Tahta kararacak ve ortada You found them all! (hepsini buldun!), kaç hamlede bitirdiğin ve Click to play again (tekrar oynamak için tıkla) yazacak.

Ayrı bir won = true değişkeni tutmak yerine cevabı kartlardan her seferinde hesaplayan küçük bir won() fonksiyonu yazarız. Neden? Her fazladan değişken, doğru her yerde güncellenmesi gereken bir şey daha demek. İyi bir kural: olabildiğince az şey sakla, gerisini hesapla.

```js
function won() {
  return cards.every((card) => card.matched)
}

  if (won()) {
    ctx.fillStyle = 'rgba(0, 0, 0, 0.6)'
    ctx.fillRect(0, 0, canvas.width, canvas.height)
    ctx.fillStyle = 'white'
    ctx.font = 'bold 30px sans-serif'
    ctx.fillText('You found them all!', canvas.width / 2, 190)
    ctx.font = '20px sans-serif'
    ctx.fillText('in ' + moves + ' moves', canvas.width / 2, 230)
    ctx.font = '16px sans-serif'
    ctx.fillText('Click to play again', canvas.width / 2, 270)
  }
```

Ne işe yarıyor

Sıra sende

  1. function flip(card) { satırının üstüne won fonksiyonunu ve bir boş satır yaz.
  2. draw içinde kartları çizen döngünün kapanan } işaretinin altına bir boş satır bırak ve if (won()) bloğunu fonksiyonun son } işaretinin üstüne yaz.
  3. Çalıştır ve bütün eşleri bul: tahta kararmalı ve üç satır yazı çıkmalı.

Beceriler: Oyun durumları, Canvas üzerine çizim

Tüm adımlar

  1. Canvas'ı ve kalemi al
  2. Masa
  3. Bir kart
  4. Bir sıra kart
  5. Dört sıra
  6. Her meyveden iki tane
  7. Kendini bilen kartlar
  8. Kartın köşesi
  9. Kartları listeden çiz
  10. Durmadan çiz
  11. Kartın ön yüzü
  12. Adil bir karıştırma
  13. Bir noktada hangi kart var?
  14. Tıkla, kartı çevir
  15. Kurallar için tek yer
  16. Aynı anda iki kart
  17. Eş mi değil mi
  18. Hamleleri say
  19. Hamleleri ve eşleri göster
  20. Bütün eşler bulundu
  21. Tekrar oyna
  22. Peşinden giden bir sayı
  23. Yarı yolda yüz değiştir
  24. Dönüşü canlandır
  25. Kendin yap: en iyi oyunun