Atölye › Conway'in Hayat Oyunu › 27/32. adım
Hayat Oyunu meraklıları ünlü desenleri yazı olarak paylaşır: her satır bir yazı, O canlı hücre, . ölü hücre.
Bir planör şöyle görünür:
['.O.',
'..O',
'OOO']
stamp (damga) böyle bir resmi ızgaraya mühür gibi basar: desenin sol üst köşesi verdiğimiz satır ve sütuna gelir.
```js
// Copy a text pattern onto the grid with its top left corner at (row, col).
function stamp(pattern, row, col) {
pattern.forEach((line, r) => {
for (let c = 0; c < line.length; c++) if (line[c] === 'O') grid[(row + r) % ROWS][(col + c) % COLS] = 1
})
}
```pattern.forEach((line, r) => { ... }) → forEach, listenin her elemanı için içini çalıştırır. line o
anki satır yazısı ('.O.'), r onun sırası (0, 1, 2...).'.O.'[1] → 'O' (sayma 0'dan), '.O.'.length → 3 (kaç harf olduğu).for (let c = 0; c < line.length; c++) → satırın her harfine bakar.if (line[c] === 'O') grid[...][...] = 1 → harf O ise o hücreyi canlandır. Desenin satırı row + r, sütunu
col + c.% ROWS ve % COLS → dünya başa sardığı için, kenardan taşan desen karşı taraftan devam eder.clear fonksiyonunun kapanan }'sinin altında bir boş satır bırak ve yorum satırıyla birlikte stamp'i yaz.
Çalıştır: ekran değişmez; desenleri birazdan basacağız.
Beceriler: Diziler ve nesneler, Döngüler
← Sürükleyerek boya Planör topu →