Atölye › Amiral Battı › 16/35. adım
Bir gemi, bütün kareleri vurulunca batar. Her gemi aldığı isabetleri sayacak: hits. İsabet sayısı gemi boyuna
ulaşınca gemi batmıştır.
"Gemi batırdın" demek oyuncu için önemlidir: o geminin çevresinde aramayı bırakabileceği anlamına gelir. Bu yüzden batırmanın kendi mesajı olacak.
```js
let enemyFleet // ships: { cells: [[r, c], ...], hits }
return { cells, hits: 0 }
const sunk = (ship) => ship.hits === ship.cells.length
ship.hits += 1
return sunk(ship) ? 'sunk' : 'hit'
message = result === 'miss' ? 'Miss' : result === 'hit' ? 'Hit!' : 'You sank a ship!'
```hits: 0 → her gemi sıfır isabetle başlar. Yorum da yeni alanı listeliyor.const sunk = (ship) => ship.hits === ship.cells.length → isabet sayısı kare sayısına eşitse gemi batmış.ship.hits += 1 → fire'da isabet olunca geminin sayacı artar.return sunk(ship) ? 'sunk' : 'hit' → bu isabet gemiyi batırdıysa 'sunk', değilse 'hit'.? : art arda: 'miss' → 'Miss', 'hit' → 'Hit!', geri kalan ('sunk') →
'You sank a ship!' (bir gemi batırdın!).let enemyFleet yorumuna , hits; placeFleet'in döndürdüğü gemiye , hits: 0 ekle.shipAt satırının altına sunk satırını yaz.fire'ın sonunu kodda görüldüğü gibi değiştir: ship.hits += 1 ve sunk soran return.playerShoots içindeki mesaj satırını üç durumlu hâline getir.Beceriler: Oyun durumları
← Kendi filonu gör Batık gemide koyu isabetler →