HN Tanıtımı: Pong Wars
(pong-wars.koenvangilst.nl)- 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 288gibi 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.htmliç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 288biçiminde gösterilir
Tek dosyalı uygulama ve yeniden kullanım
- Uygulama JavaScript ve HTML/CSS kullanır ve tek bir
index.htmldosyası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
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
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
Bu yüzden bir topun aşırı derecede sıkışmış kalması durumunun çok uzun sürmesi zor
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))
Çü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ı?
Hatta kısa bir Wikipedia maddesi de var: https://en.wikipedia.org/wiki/Zero-player_game
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
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
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
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
Sabırsız insanlar için bir de hız kaydırıcısı ekledim
https://explorers.toxicode.fr/?remoteWorkspace=pong-war
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