Atölye › Conway'in Hayat Oyunu › 15/32. adım
Dünyada kaç hücre canlı? Hücreler 1 ya da 0 olduğu için bu soru "bütün ızgarayı topla" demek. Sonucu sağ üste
yazacağız: Alive 123. Nüfus sayımı gibi.
```js
const population = () => grid.reduce((sum, row) => sum + row.reduce((a, b) => a + b, 0), 0)
ctx.fillText('Generation ' + generation, 8, 24)
ctx.textAlign = 'right'
ctx.fillText('Alive ' + population(), canvas.width - 8, 24)
}
```reduce bir listeyi tek bir değere indirir. [1, 0, 1].reduce((a, b) => a + b, 0) şöyle okunur: "0'dan
başla; her elemanı (b) o ana kadarki toplama (a) ekle" → 0 + 1 + 0 + 1 = 2.row.reduce((a, b) => a + b, 0) → bir satırdaki canlıları toplar.grid.reduce((sum, row) => sum + ..., 0) → dıştaki reduce her satırın toplamını sum'a ekler: bütün ızgara.ctx.textAlign = 'right' → yazının sağ ucu verdiğin x'e gelir. canvas.width - 8 → sağ kenardan 8 piksel
içeri. Yazı ne kadar uzarsa uzasın kenardan taşmaz.population() → fonksiyonu çağırır; dönen sayı 'Alive ''ın yanına eklenir.step fonksiyonunun kapanan }'sinin altında bir boş satır bırak ve population satırını yaz.draw içinde ctx.fillText('Generation ' ... satırının hemen altına iki yeni satırı yaz.Alive ve bir sayı görmelisin; N'ye bastıkça değişir.Beceriler: Diziler ve nesneler
← Kenarsız bir dünya Birkaç karede bir nesil →