Atölye › Amiral Battı › 9/35. adım
Atışlarını bir tabloda tutacağız: myShots. Her kare null (henüz denenmedi), 'miss' (ıska) ya da 'hit' (isabet).
fire (ateş et) bir filonun bir karesine ateş eder, sonucu bir tabloya yazar ve sonucu geri verir. Filoyu ve tabloyu
parametre olarak alıyor, çünkü birkaç adım sonra bilgisayar da senin filona aynı fonksiyonla ateş edecek.
```js
let myShots // myShots[r][c]: null, 'miss' or 'hit' (on the enemy's sea)
myShots = grid(null)
// Fire at a square of a fleet and record the result on that shots grid.
function fire(fleet, record, r, c) {
const ship = shipAt(fleet, r, c)
if (!ship) {
record[r][c] = 'miss'
return 'miss'
}
record[r][c] = 'hit'
return 'hit'
}
```myShots = grid(null) → reset içinde: her yeni oyunda boş bir atış tablosu.fire(fleet, record, r, c) → fleet hangi filoya, record sonucun hangi tabloya yazılacağı, r, c kare.const ship = shipAt(fleet, r, c) → o karede gemi var mı?if (!ship) → ! "değil": gemi yoksa. Tabloya 'miss' yaz ve return 'miss' ile cevabı ver.'hit' yaz ve 'hit' ver.record[r][c] = ... → tablonun r. satırının c. karesini değiştirir.let myFleet satırının altına yorumuyla let myShots yaz.reset içinde myFleet = placeFleet() satırının altına myShots = grid(null) yaz.function drawSea( satırının üstüne yorumuyla birlikte fire fonksiyonunu yaz; altında bir boş satır kalsın.Beceriler: Fonksiyonlar, Diziler ve nesneler
← Burada hangi gemi var? Atışları göster →