Atölye › Bomberman Tarzı Arena › 4/42. adım
Arenadaki her kareyi tek bir karakterle tutacağız:
'#' → duvar, hiçbir şey kıramaz,'+' → kasa, bombalar yok eder,' ' (boşluk) → zemin.grid (ızgara) bir liste içinde liste: 11 satırlık bir dizi, her satır 13 karakterlik bir dizi. grid[r][c],
r. satırın c. karesi. makeGrid bu ızgarayı kuracak: şimdilik kenarlar duvar, içerisi zemin. Ekranda bu adımda
fark olmayacak; çizimi bir sonraki adımda ızgaraya bağlayacağız.
```js
let grid // grid[r][c]: '#' wall, '+' crate or ' ' floor
function makeGrid() {
grid = []
for (let r = 0; r < ROWS; r++) {
grid.push([])
for (let c = 0; c < COLS; c++) {
if (r === 0 || c === 0 || r === ROWS - 1 || c === COLS - 1) grid[r].push('#')
else grid[r].push(' ')
}
}
}
function reset() {
makeGrid()
}
reset()
requestAnimationFrame(loop)
```let grid → ızgara; yorum, içinde ne olduğunu anlatıyor.grid = [] → boş liste ile başla.grid.push([]) → listenin sonuna yeni, boş bir satır ekler. push "sona ekle" demek.grid[r].push('#') → r. satırın sonuna bir duvar ekler.if (r === 0 || c === 0 || r === ROWS - 1 || c === COLS - 1) → ilk satır ya da ilk sütun ya da son satır
ya da son sütunsa duvar. || "ya da", === "eşit mi" demek. ROWS - 1 son satırın numarası (10), çünkü
sayma 0'dan başlar.else grid[r].push(' ') → değilse zemin.function reset() { makeGrid() } → oyunu kuran fonksiyon; ileride bütün başlangıç değerleri burada olacak.
En alttaki reset() onu döngüden önce bir kez çağırır.const TOP = ... satırının altında bir boş satır bırak; let grid satırını, makeGrid ve reset fonksiyonlarını
yaz.requestAnimationFrame(loop) satırının üstüne reset() yaz.Beceriler: Diziler ve nesneler
← Her karede çiz Izgaranın dediğini çiz →