Atölye › Conway'in Hayat Oyunu › 14/32. adım

Kenarsız bir dünya

Ne yapıyoruz

Şu an kenarlar duvar gibi: kayarak ilerleyen bir desen kenara çarpınca bozulur. Birçok Hayat Oyunu programı dünyayı başa saran (wrap around) yapar: son sütunun sağı ilk sütundur, en üst satırın üstü en alt satırdır. Eski video oyunlarında ekranın sağından çıkıp solundan giren karakter gibi. Böyle bir dünyanın şekli simittir (torus).

Bunun için kalan işaretini kullanacağız: %.

```js
// Live neighbours among the 8 around (r, c). The edges wrap around, so the world has no border.
function countNeighbors(r, c) {
  let count = 0
  for (let dr = -1; dr <= 1; dr++) {
    for (let dc = -1; dc <= 1; dc++) {
      if (dr === 0 && dc === 0) continue
      count += grid[(r + dr + ROWS) % ROWS][(c + dc + COLS) % COLS]
    }
  }
  return count
}
```

Ne işe yarıyor

Sıra sende

  1. countNeighbors'ın üstündeki yorumu kodda görüldüğü gibi değiştir.
  2. const nr = ..., const nc = ... ve uzun if (nr >= 0 ... satırlarını sil; yerine tek count += ... satırını yaz.
  3. Çalıştır, oyuna tıkla ve N'ye bas: kenara gelen desenler karşı taraftan devam eder.

Beceriler: Diziler ve nesneler

Tüm adımlar

  1. Oyun tahtası
  2. Izgarayı ölç
  3. Tek bir canlı hücre
  4. Çizen bir fonksiyon
  5. Hafızadaki dünya
  6. Her canlı hücreyi çiz
  7. Rastgele bir çorba
  8. Komşuları say
  9. Dört kural
  10. Tekrar tekrar çiz
  11. N ile sonraki nesil
  12. Nesilleri say
  13. Nesli göster
  14. Kenarsız bir dünya
  15. Canlıları say
  16. Birkaç karede bir nesil
  17. Yaşasın
  18. Çalışıyor mu?
  19. Düğmeler için tek bir yer
  20. Boşlukla oynat, N ile adım at
  21. Temizle ve karıştır
  22. İşaretçi nerede?
  23. Hangi hücre?
  24. Hücreye tıkla
  25. Boya mı sil mi?
  26. Sürükleyerek boya
  27. Metinden desenler
  28. Planör topu
  29. Topu ateşle
  30. Ekranda düğmeler
  31. Düğmelere dokun
  32. Kendin yap: duran dünya