Atölye › Amiral Battı › 19/35. adım
Son düşman gemisi batınca kazanırsın. Kaç atışta kazandığın da puanın olsun: ne kadar az, o kadar iyi.
Bunun için iki değişken ekliyoruz: state (durum: 'playing' oyunda, 'won' kazandı, 'lost' kaybetti) ve shots
(atış sayısı). Oyun bitince atış yapılamaz.
```js
let state // 'playing', 'won' or 'lost'
let shots // how many shots you took
state = 'playing'
shots = 0
if (state !== 'playing' || myShots[r][c]) return
shots += 1
if (enemyFleet.every(sunk)) {
state = 'won'
message = 'You won in ' + shots + ' shots!'
return
}
```state = 'playing', shots = 0 → her yeni oyunda.if (state !== 'playing' || myShots[r][c]) return → oyunda değilsek veya kare denendiyse hiçbir şey yapma.shots += 1 → geçerli her atışı say.enemyFleet.every(sunk) → every "hepsi mi?": bütün düşman gemileri batık mı? Yine fonksiyonun kendisini veriyoruz.state = 'won' ve mesaj: 'You won in ' + shots + ' shots!' → yazı ile sayıyı birleştirir: You won in 23 shots!.return → fonksiyondan çık (ileride altına başka satırlar gelecek).let message satırının altına yorumlarıyla let state ve let shots yaz.reset içinde mesaj satırının altına state = 'playing' ve shots = 0 yaz.playerShoots'un ilk satırını kodda görüldüğü gibi değiştir ve altına shots += 1 yaz.playerShoots'un sonuna, mesaj satırının altına kazanma bloğunu yaz.Beceriler: Oyun durumları
← Batık gemilerin çerçevesi Onların atışlarının kaydı →