Willys Works
Hier findest du alle kleinen Spielereien und Mini-Projekte an einem Ort.
2D Zauberwuerfel mit PHP-Logik
Zeit: 00:00.00
Moves: 0
Status: Geloest
Up
Left
Front
Right
Back
Down
Der 2D-Zauberwuerfel entstand direkt aus den vorherigen Tabellen- und Musterprojekten heraus. Nachdem klar wurde, dass sich Tabellen nicht nur mit festen Inhalten, sondern auch mit Farben, Mustern und Zustaenden fuellen lassen, stellte sich fuer mich die naechste Frage: Koennte man aus mehreren solcher Flaechen auch ein kleines logisches System bauen, bei dem eine Aenderung an einer Stelle automatisch Auswirkungen auf andere Bereiche hat?
Die Grundidee war zunaechst, sechs einzelne 3x3-Tabellen wie die Seiten eines Zauberwuerfels zu behandeln und diese so miteinander zu verschraenken, dass eine Drehung einer Seite direkt auch die betroffenen Reihen und Spalten der angrenzenden Seiten veraendert. Anfangs hatte ich mir diese Verbindung noch sehr direkt vorgestellt, also beinahe so, als muessten die sichtbaren HTML-Tabellen selbst miteinander verknuepft werden. Genau das stellte sich aber als falsche Stelle fuer diese Logik heraus.
In der fertigen Umsetzung sind die Tabellen deshalb nicht die eigentliche Spiellogik, sondern nur die sichtbare Ausgabe des aktuellen Wuerfelzustands. Der Wuerfel wird serverseitig in PHP als sechs Seiten mit jeweils neun Feldern gespeichert. Wird ein Zug wie U, D, F, B, R oder L ausgeloest, veraendert PHP diesen Zustand: Die betroffene Seite wird gedreht und zusaetzlich werden die passenden Reihen oder Spalten der angrenzenden Seiten miteinander ausgetauscht.
Die urspruenglich gedachte "Verschraenkung" existiert dadurch trotzdem, nur eben nicht im HTML selbst, sondern in der Zustandslogik dahinter. Kleine Hilfsfunktionen lesen einzelne Reihen und Spalten aus, schreiben sie an anderer Stelle wieder hinein und gleichen dabei auch Richtungswechsel aus, wenn eine Reihe oder Spalte durch die Perspektive des Wuerfels gespiegelt werden muss. Die Oberflaeche zeigt anschliessend nur den neuen Zustand an.
Rueckblickend war dieses Projekt deshalb weniger ein Versuch, einen echten raeumlichen Wuerfel zu bauen, sondern eher ein abstrakter 2D-State-Cube. Genau diese Erkenntnis war wichtig, weil sie auch die Grenze des Ansatzes gezeigt hat: Fuer eine nachvollziehbare PHP-Umsetzung der Zustandslogik funktioniert das Modell gut. Sobald es aber um eine raeumlichere Darstellung, freie Perspektivrotation und eine direktere Bedienung im Browser geht, ist es sinnvoller, daraus ein eigenstaendiges Projekt mit anderer technischer Grundlage zu machen.