Commit graph

13 commits

Author SHA1 Message Date
177e66c626 Fix: WRAP_OFF durch Last-Cell-Skip ersetzen
WRAP_OFF (ESC[?7l) verhinderte Scrollback, blockierte aber in iTerm2
die Darstellung der unteren Bildschirmhälfte.

Stattdessen: die allerletzte Zelle (Zeile rows-1, Spalte cols-1)
wird nicht beschrieben – ncurses-Standardansatz. Kein Auto-Wrap,
kein Scrollback, keine Darstellungsprobleme.
2026-03-29 11:28:14 +02:00
860fb7b3dd Fix: Wasseroberfläche proportional zur Terminalhöhe (rows//3)
Hardcodiertes wl=5 ließ bei kleinen Terminals (~10 Zeilen) nur
1-2 Zeilen Unterwasserraum. Wie im Perl-Original: wl=rows//3.

- add_environment: y=wl+i statt y=i+5
- Alle Spawn-y für Fische/Haie/Taucher usw.: wl+4 als Minimum
- Delfine: start_ys relativ zu wl
- Enten: y=wl statt y=5
- Castle nur bei rows>=20 (passt sonst nicht ins Terminal)
2026-03-29 11:20:12 +02:00
0ca2bf109d Fix: ESC[2J aus Frame-Rendering entfernt verhindert Scrollback
ESC[2J schiebt in iTerm2 den Bildschirminhalt bei jedem Aufruf
in den Scrollback-Puffer – 10x/Sekunde. Da render() ohnehin
jede Zelle überschreibt, genügt ESC[H (Cursor-Home).
2026-03-29 11:10:50 +02:00
7c1f401a9b Fix: Autowrap deaktivieren verhindert Scrollback-Overflow
Beim Beschreiben der letzten Spalte der untersten Terminal-Zeile
löst automatischer Zeilenumbruch ein Scroll-Event aus. Bei 10 fps
füllt sich der Scrollback-Puffer kontinuierlich.

WRAP_OFF (ESC[?7l) beim Start, WRAP_ON (ESC[?7h) beim Beenden.
2026-03-29 11:07:16 +02:00
46402b64f9 Fix: Delfine tauchen jetzt unter die Wasseroberfläche
start_ys=[8,2,5] ließ Delfine nur zwischen y=1 und y=8 pendeln –
genau an der Wasseroberfläche (Wellen bei y=5-8), nie darunter.

Neuer Bogen [10,4,7]: Amplitude ±7, Zentrum y=10.
Delfine spannen y=3 (über den Wellen) bis y=10 (unter Wasser)
und durchqueren die Oberfläche in beiden Phasen.
2026-03-29 11:02:09 +02:00
79f42a5f1e Fix: add_seaweed death_cb als Lambda statt gebundener Methode 2026-03-29 10:38:45 +02:00
0730afcb1c Fix: Screen-Clear vor jedem Frame, mehr Fische
- canvas.render() startet jetzt mit \033[2J um das gesamte Terminal zu löschen,
  nicht nur die Canvas-Breite (verhindert Trails bei breiten Terminals)
- add_all_fish(): min 8 Fische statt 1, dichtere Formel (//200 statt //350)
2026-03-29 10:37:59 +02:00
1f053822ff Krabbe: ASCII-only, weiter sichtbar; Taucher (Scuba-Diver) neu
- Krabben-Zeichen von '°' (non-ASCII, wide-char-Problem) auf '.' umgestellt
- steps_out 14→22: Krabbe läuft weiter aus dem Schloss heraus
- add_diver(): Scuba-Taucher mit 2-Frame-Animation, Sauerstoffblasen beim Tod
2026-03-29 10:19:34 +02:00
566bbd9d0e README: Installation, Parameter, Tiere, Unterschiede zum Perl-Original 2026-03-29 10:06:33 +02:00
72beb622bf Neue Features: --bloody, --vegan, --no-shark, --no-ship, --speed, --any-key, Seepferdchen, Tintenfisch, Krabbe am Schlosstor
- CLI-Parameter via argparse: --speed (TICK-basiert), --no-shark, --no-ship,
  --bloody (Hai frisst Fische mit Splat-Animation), --vegan (keine Räuber),
  --any-key (beliebige Taste beendet)
- Config-Dataclass: wird durch Aquarium durchgereicht, steuert random_fns
- CrabEntity: Krabbe läuft aus Schlosstor heraus und kehrt zurück
- Portcullis-Animation: Falltor öffnet/schließt sich vor/nach der Krabbe
- Neue Tiere: add_seahorse (Seepferdchen), add_squid (Tintenfisch)
- entity_type für Fish und Shark für Kollisionserkennung
2026-03-29 09:50:11 +02:00
7319d26129 fix whale direction and populate fish on-screen at startup
Whale body/spout-alignment logic was inverted (not going_right → wrong
direction). Initial fish population now starts distributed on-screen
instead of all off-screen edges, so the aquarium is immediately filled.
2026-03-29 09:26:18 +02:00
9f3f754921 asciiquarium-ng: rewrite as faithful 1:1 Python port of Perl original
Same sprites, same colors, same entity timing as the Perl source.
Replaces Curses with direct ANSI truecolor escapes using the same
RGB values as our Homebrew fix (xterm-256 slots 16-231).
2026-03-28 20:43:18 +01:00
cbfa1745b7 asciiquarium-ng: initial Python implementation with true RGB colors
Single-file animation engine: Canvas with per-cell true-color, ocean
gradient background, waves, castle, seaweed, fish, shark, jellyfish,
ship, bubbles. No Curses dependency — pure ANSI escape codes.
2026-03-28 20:24:30 +01:00