Zellularautomat v2

Topologie · Kachel-Tiling · Hex-Modus

Über diese Version / About this version

Die Original-Version (v1) ist unverändert auf zellularautomat.astrojones.de verfügbar. Diese v2-Variante ist eine vollständig getrennte Desktop-Anwendung, die um drei Konzepte erweitert wurde:

Download  |  Run locally

Die v2-App ist eine eigenständige Python-Anwendung (pygame + numpy). Sie läuft lokal – die Website dient nur als Download-Quelle und zur Dokumentation. Quellcode:

⬇ zellularautomat_v2.py   📖 README

python3 -m venv .venv
source .venv/bin/activate
pip install pygame numpy
python zellularautomat_v2.py

Steuerung / Controls

TasteWirkung
TTopologie wechseln (Hyperbolic → Donut → Rectangle → Hex)
1 / 2 / 3Regel 1, 2 oder 3 (je nach Topologie)
+ / Geschwindigkeit (1–30 Gen/s)
LeertastePause / Weiter
RZellen zufällig verteilen (50 %)
MausklickZelle toggeln
EscBeenden

Topologien im Detail

Hyperbolic (Poincaré-Disk)

Die Original-Geometrie: Zellen in der oberen Halbebene werden via Cayley-Transformation \[ z' = \frac{z - i}{z + i} \] in die Einheitsscheibe abgebildet. Zellen nahe des Rands schrumpfen. Jede Kachel ist eine eigenständige Scheibe; ein Wrap zwischen Kacheln würde die Geometrie zerstören.

Donut (Torus)

Klassischer 2D-Torus: ein 80×60-Gitter mit Wrap-around in beiden Achsen. Eine Zelle am linken Rand hat den rechten als Nachbar – das vermeidet fixe Grenzen und ergibt periodische Strukturen.

Rectangle

Flaches 80×60-Gitter mit statischen Rändern: am Rand liegende Zellen haben einen Nachbar weniger. Game of Life auf einem endlichen Brett ohne Wrap.

Hex (Hexagonal)

Sechseckgitter mit axialen Koordinaten \((q, r)\). Sechs Nachbarn: \[ (+1,0), \; (+1,-1), \; (0,-1), \; (-1,0), \; (-1,+1), \; (0,+1). \] Drei Life-like Regeln verfügbar: B2/S34, B3/S12, B4/S34. Hyperbolisch + Hex ist nicht kombinierbar (die Poincaré-Scheibe trägt kein reguläres Hex-Tiling).

Regeln / Rules

Die App interpretiert drei Familien:

Architekturhinweis / Architectural note

zellularautomat_v2.py verwendet das Strategy-Pattern: jede Topologie liefert ein Grid-Objekt mit einheitlicher Schnittstelle (states, screen, neighbours). Die step-Methode der Automaton-Klasse delegiert an die passende Regel — egal ob 1D-Tabelle, 2D-Square oder Hex.