- Pong Wars ist eine Web-Demo, die den Gegensatz von Tag und Nacht, Gut und Böse wie bei Pong visualisiert
- Auf dem Bildschirm werden Tag-/Nacht-Werte wie
day 288 | night 288angezeigt, sodass der aktuelle Zustand direkt erkennbar ist - Die Umsetzung besteht aus JavaScript und etwas HTML/CSS und befindet sich in einer einzigen
index.html - Es wird darauf hingewiesen, dass der Code wiederverwendbar ist und Nutzer ihre eigene Version erstellen können
- Auf der Seite gibt es einen Hinweis auf Koen van Gilst als Ersteller sowie einen Link zum GitHub-Quellcode
Der Kampf zwischen Tag und Nacht, dargestellt mit Pong
- Pong Wars ist eine Webseite, die den Gegensatz zwischen „day“ und „night“ visuell zeigt
- Der aktuelle Zustand wird im Format
day 288 | night 288angezeigt
Umsetzung in einer einzelnen Datei und Wiederverwendung
- Die Umsetzung verwendet JavaScript sowie HTML/CSS und ist in einer einzigen Datei
index.htmlenthalten - Der Code kann wiederverwendet werden, und Nutzer können ihre eigene Version erstellen
- Auf der Seite gibt es einen Hinweis auf Koen van Gilst als Ersteller sowie einen Link zum GitHub-Quellcode
1 Kommentare
Meinungen auf Hacker News
Der Code verlinkt diesen Tweet als Inspirationsquelle: https://twitter.com/nicolasdnl/status/1749715070928433161 [nitter: https://nitter.net/nicolasdnl/status/1749715070928433161]
Das Zitat lautet sinngemäß: „Ein endloser Kampf #genuary23 #genuary #genuary2024. Die Idee ist nicht ursprünglich von mir; ich habe sie früher schon einmal gesehen, finde aber nicht mehr, wo“
Hier heißt es, der Kampf sei endlos; ich frage mich, ob es eine Möglichkeit gibt, das mathematisch zu beweisen
Ursprünglich hatte ich https://twitter.com/CasualEffects/status/1390290306206216196 gesehen, und der Autor sagte, es stamme aus einem pico8-Original. In den früheren Versionen gab es auch Pong-Schläger, aber als ich ein BASIC-Demake erstellte, konnte ich den Code nicht in einen Tweet packen, damit bbcmicrobot ihn ausführt, also entfernte ich die Schläger
Meine Version war etwas langsam und grob, aber jemand, ich glaube @rheolism, postete eine viel schnellere und flüssigere Version, die statt Punkte zu setzen benutzerdefinierte Zeichen verwendete; später sah ich auch, wie das Demake in Processing neu erstellt wurde. Solche Dinge entwickeln ein Eigenleben
Den Twitter-Account habe ich vor langer Zeit gelöscht, aber ich habe es im Archiv wiedergefunden
Daher dürfte eine Situation, in der ein Ball extrem eingesperrt ist, nur schwer sehr lange andauern
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))
Denn je kleiner der eigene Bereich wird, desto höher wird die Eroberungsgeschwindigkeit
Mich faszinieren solche Sachen sehr, aber ich kenne nicht einmal einen Genrebegriff, um sie einzuordnen und zu analysieren, also kann ich sie nur „solche Sachen“ nennen
Sie sind von Spielalgorithmen inspiriert, aber keine Spiele; auch Conways „Game of Life“ ist gewissermaßen falsch benannt. Es bewegt sich, ist aber nicht wie eine normale Animation geskriptet
In der realen Welt nennen Leute wie David C. Roy ihre Werke kinetische Skulpturen
Algorithmische Videos? Spielsimulatoren? Autonome Automaten?
Es gibt auch einen kurzen Wikipedia-Artikel: https://en.wikipedia.org/wiki/Zero-player_game
Edit: Ich habe kurz in den Code geschaut, und in der Abpralldynamik steckt etwas Zufall. Daher ist es schwer, es als „vollständig deterministisch“ zu bezeichnen, sofern man den Seed des Pseudozufallszahlengenerators nicht als Teil der Anfangsbedingungen zählt
Es gibt Zeit und Regeln und so weiter, und das wichtige Element ist, dass man das Ergebnis nicht im Voraus kennt
Dieses letzte Element macht das Schreiben und Ausführen solcher Programme interessant
Mein 12-jähriger Sohn hat das gerade in Scratch gebaut:
https://scratch.mit.edu/projects/957461584/
Wirklich cool
Derzeit kommt es bei einem Ball umso häufiger zu Kollisionen bei gleicher Geschwindigkeit, je kleiner der von ihm besessene Bereich wird; interessant wäre es, die Geschwindigkeit proportional zur Anzahl der besessenen Felder oder zu deren Quadratwurzel zu machen
Ich glaube nicht, dass eine Seite am Ende gewinnen wird
Auf mehreren Ebenen wirklich schön
Ästhetisch kann man sich einfach hinsetzen und zuschauen, und philosophisch ist es als digitale Metapher für einen fortwährenden Kampf interessant
Zuletzt, und am interessantesten, wurden zwei sehr einfache alte Ideen kombiniert, um etwas Neues zu schaffen. Das gut hinzubekommen, ist äußerst selten
Großes Lob, wirklich sehr viel
Mit 3 Farben würde es interessant werden
Wenn die anderen beiden eine Farbe in die Ecke drängen, kann sie wegen des engen Raums schnell Blöcke zurückerobern und sich kurz vor der Niederlage rasch erholen
Für die Ungeduldigen habe ich auch einen Geschwindigkeitsregler eingebaut
https://explorers.toxicode.fr/?remoteWorkspace=pong-war
Es gibt auch einen Mastodon-Beitrag des ursprünglichen Autors: https://hachyderm.io/@vnglst/111828811496422610
Ich habe es zu Lernzwecken in C++ und Qt Scene Graph implementiert
Ich teile es, falls jemand Interesse hat: https://invent.kde.org/carlschwan/warpong/-/blob/master/src/...
Ein ähnliches Beispiel: https://contranoid.com/
Es gibt auch noch eine weitere Pong-Variante, allerdings nur für Desktop: https://www.obfusco.com/pn0gjs/index.html