Atölye › Mayın Tarlası › 20/26. adım
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
```grid.flat().every((cell) => cell.mine || cell.revealed) → every "her hücre bu koşulu sağlıyor mu?" diye
sorar: hücre ya mayınlı ya da açık. Hepsi öyleyse win().reveal'ın en sonuna, dolgudan sonra gelir.function win() → state = 'won' ve bütün mayınlara bayrak.toggleFlag ve tıklama dinleyicisindeki koşullara state === 'won' || ekleniyor: oyun bitti, ister kazan ister kaybet.reveal'ın en sonuna, dolgunun while bloğunu kapatan } satırının altına every satırını yaz.function cellAt(event) { satırının üstüne win fonksiyonunu yaz; arada bir boş satır kalsın.toggleFlag'in ilk satırını if (cell.revealed || state === 'won' || state === 'lost') return yap.if (state === 'won' || state === 'lost') return yap.Beceriler: Oyun durumları
← Kalan mayınlar Son ve yeni oyun →