2 puan yazan GN⁺ 2024-01-28 | 1 yorum | WhatsApp'ta paylaş
  • Pong Wars, gündüz ve gece ile iyi ve kötü arasındaki karşılaşmayı Pong benzeri bir görselleştirmeyle sunan bir web demosudur
  • Ekranda day 288 | night 288 gibi day/night değerleri gösterilir; böylece mevcut durum anında görülebilir
  • Uygulama JavaScript ve bir miktar HTML/CSS ile hazırlanmıştır ve tek bir index.html içinde yer alır
  • Kodun yeniden kullanılabilir olduğu ve kullanıcıların kendi sürümlerini oluşturabileceği belirtilir
  • Sayfada Koen van Gilst imzası ve GitHub kaynak bağlantısı bulunur

Pong ile ifade edilen gündüz ve gece mücadelesi

  • Pong Wars, “day” ve “night” arasındaki mücadeleyi görsel olarak gösteren bir web sayfasıdır
  • Mevcut durum day 288 | night 288 biçiminde gösterilir

Tek dosyalı uygulama ve yeniden kullanım

  • Uygulama JavaScript ve HTML/CSS kullanır ve tek bir index.html dosyasında yer alır
  • Kod yeniden kullanılabilir ve kullanıcılar kendi sürümlerini oluşturabilir
  • Sayfada Koen van Gilst imzası ve GitHub kaynak bağlantısı bulunur

1 yorum

 
GN⁺ 2024-01-28
Hacker News yorumları
  • Kod, fikir kaynağı olarak şu tweet’e bağlantı veriyor: https://twitter.com/nicolasdnl/status/1749715070928433161 [nitter: https://nitter.net/nicolasdnl/status/1749715070928433161]
    Alıntı şu anlama geliyor: “Sonsuz mücadele #genuary23 #genuary #genuary2024. Orijinal bir fikir değil, daha önce görmüştüm ama nerede gördüğümü bulamıyorum”
    Burada mücadelenin sonsuz olduğu söyleniyor; bunun matematiksel olarak kanıtlanmasının bir yolu olup olmadığını merak ediyorum

    • Daha da geriye gidersek, fikrin bir kısmı bana ait olabilir: https://hachyderm.io/deck/@bazzargh/111829275276749971
      Aslında https://twitter.com/CasualEffects/status/1390290306206216196 gönderisini görmüştüm ve yazar bunun pico8 orijinalinden geldiğini söylemişti. Ondan önceki sürümlerde Pong raketleri de vardı, ama ben BASIC demake yaptığımda kodu tweet’in içine bbcmicrobot’un çalıştırabileceği şekilde sığdıramadığım için raketleri çıkarmıştım
      Benim sürümüm biraz yavaş ve hantaldı; sanırım @rheolism olan biri, nokta çizmek yerine özel karakterler kullanarak çok daha hızlı ve akıcı bir sürüm paylaşmıştı, daha sonra da bunun Processing ile yeniden yapılmış bir demake’ini gördüm. Böyle şeyler kendi hayatını yaşamaya başlıyor
      Twitter hesabı uzun zaman önce silindi ama arşivde buldum
    • Her top en az 1x1 alan kapladığı için, karşı top %100’ünü asla kaplayamaz
    • Alan küçüldükçe o top, rakibine göre birim zamanda daha fazla seker ve alanını büyütmek için daha çok fırsat yakalar
      Bu yüzden bir topun aşırı derecede sıkışmış kalması durumunun çok uzun sürmesi zor
    • Sol topun yalnızca tek bir kareye sahip olup sağ topun geri kalan her şeye sahip olduğu durumda ne olduğuna bakabilirsiniz:
      x1 = y1 = y3 = squareSize, x2 = canvas.width - squareSize
      squares = Array.from({ length: numSquaresX }, (, i) =>
      Array.from({ length: numSquaresY }, (
      , j) =>
      i === 0 && j === 0 ? TEAM1 : TEAM2))
    • Oldukça istikrarlı bir denge var gibi görünüyor
      Çünkü sahip olunan alan azaldıkça geri kazanma hızı artıyor
  • Bu tür şeylere çok kapılıyorum ama sınıflandırıp analiz etmek için bir tür adı olup olmadığını bile bilmediğimden ancak “bu tür şeyler” diyebiliyorum
    Oyun algoritmalarından ilham alıyor ama oyun değil; Conway’in “Game of Life”ı da aslında yanlış adlandırılmış sayılır. Hareket ediyor ama sıradan animasyonlar gibi script’lenmiş de değil
    Gerçek dünyada David C. Roy gibi biri kendi işlerini kinetik heykel diye adlandırıyor
    Algoritmik video mu? Oyun simülatörü mü? Otonom otomat mı?

    • Bunun için zero-player game teriminin kullanıldığını görmüştüm
      Hatta kısa bir Wikipedia maddesi de var: https://en.wikipedia.org/wiki/Zero-player_game
    • “Executive toy” ile benzer bir bakış açısından oyuncak terimi hoşuma gidiyor
    • Buna bir kaotik sistem denebilir mi? Tamamen deterministik ama başlangıç koşullarına çok duyarlı bir sistem olması anlamında
      Düzeltme: Koda biraz bakınca sekme dinamiklerine az miktarda rastgelelik katıldığını gördüm. Bu yüzden sözde rastgele sayı üretecinin tohumunu başlangıç koşullarının bir parçası saymadıkça “tamamen deterministik” demek zor
    • Simülasyon derseniz muhtemelen yeterince kapsayıcı olur
    • Ben kendi kafamda buna simülasyon diyorum
      Zaman ve kurallar var; önemli unsur da sonucu önceden bilemiyor olmanız
      Sonuncu unsur, bu tür programları yazıp çalıştırmayı ilginç kılan şey
  • 12 yaşındaki oğlum bunu az önce Scratch ile yaptı:
    https://scratch.mit.edu/projects/957461584/

  • Gerçekten harika
    Şu anda topun sahip olduğu alan küçüldükçe aynı hızda daha fazla çarpışma oluyor; hızı sahip olunan hücre sayısıyla ya da onun kareköküyle orantılı yapmanın ilginç olabileceğini düşünüyorum

    • Kart oyunu “War” gibi, bunun bu şekilde kendi kendini dengelediği hissi var
      Sonunda iki taraftan birinin kazanacağını sanmıyorum
  • Birden fazla düzeyde gerçekten çok güzel
    Estetik açıdan sadece oturup izlemesi keyifli; felsefi açıdan ise bitmeyen mücadeleye dair dijital bir metafor olması ilginç
    Son olarak ve en ilginci, çok basit iki eski fikri birleştirip yeni bir şey üretmiş. Bunu iyi yapmak son derece nadir
    Büyük övgüyü hak ediyor, hem de fazlasıyla

    • Hem oyunun simüle ettiği şeyde hem de görsel olarak gösterdiğinde bir ölçüde yin ve yang modellediği de söylenebilir
  • 3 renk olursa ilginçleşebilir
    Diğer ikisi birini köşeye sıkıştırdığında, dar alan sayesinde blokları hızla geri alıp yenilgiye çok yaklaşmışken hızla toparlanabilir

  • Orijinal yazarın Mastodon gönderisi de var: https://hachyderm.io/@vnglst/111828811496422610

  • Öğrenmek için bunu C++ ve Qt Scene Graph ile uyguladım
    İlgilenen olur diye paylaşayım: https://invent.kde.org/carlschwan/warpong/-/blob/master/src/...

  • Benzer bir örnek: https://contranoid.com/

  • Bir başka Pong varyasyonu daha var, ama yalnızca masaüstünde çalışıyor: https://www.obfusco.com/pn0gjs/index.html