Atölye › Mayın Tarlası › 20/26. adım

Kazanmak

Ne yapıyoruz

Ne zaman kazanırsın? Mayınsız bütün hücreler açıldığında. Bayraklar önemli değil: hiç bayrak koymadan her şeyi açan oyuncu da kazanmıştır.

Bunu her açılıştan sonra kontrol edeceğiz. Kazanınca kalan mayınlara otomatik bayrak koymak, çözülmüş tahtayı güzelce gösterir. Kazandıktan sonra da (kaybettikten sonraki gibi) tıklama ve bayrak işe yaramamalı.

```js
  if (grid.flat().every((cell) => cell.mine || cell.revealed)) win()
}

function win() {
  state = 'won'
  for (const cell of grid.flat()) if (cell.mine) cell.flagged = true
}

  if (cell.revealed || state === 'won' || state === 'lost') return

  if (state === 'won' || state === 'lost') return
```

Ne işe yarıyor

Sıra sende

  1. reveal'ın en sonuna, dolgunun while bloğunu kapatan } satırının altına every satırını yaz.
  2. function cellAt(event) { satırının üstüne win fonksiyonunu yaz; arada bir boş satır kalsın.
  3. toggleFlag'in ilk satırını if (cell.revealed || state === 'won' || state === 'lost') return yap.
  4. Tıklama dinleyicisinin ilk satırını if (state === 'won' || state === 'lost') return yap.
  5. Çalıştır.

Beceriler: Oyun durumları

Tüm adımlar

  1. Hücre nesnelerinden bir ızgara
  2. Tuval ve kalem
  3. Tarlayı çiz
  4. Her karede çiz
  5. Komşular
  6. Mayınlar, ama ilk tıklamanın altına değil
  7. Adayları karıştır
  8. Çevredeki mayınları say
  9. Hücre aç
  10. Açık hücre farklı görünür
  11. Renkli sayılar
  12. Tıkla ve aç
  13. Mayına basmak
  14. Mayınları göster
  15. Taşma dolgusu
  16. Sağ tuşla bayrak
  17. Bayrak hücresini korur
  18. Bayrakları çiz
  19. Kalan mayınlar
  20. Kazanmak
  21. Son ve yeni oyun
  22. Saat kaç?
  23. Saat
  24. Saati durdur
  25. En iyi süre
  26. Kendin yap: yanlış bayraklar