Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Archiv: Der Prompt-Verlauf zu Tic Tac Toe

Heinrich-Heine-Universität Düsseldorf

Dieses Dokument sichert den Ausgangspunkt der Vibe-Coding-Serie aus Generierte Wirtschaftssimulation … Tic Tac Toe. Grund: Freigabe-Links auf Chat-Verläufe sind flüchtig. Der Link https://gemini.google.com/share/f415fe3fe8bf war am 2026-09-25 im Browser vollständig abrufbar; hier steht der Ausgangs-Prompt zusätzlich als Text, damit er auch dann noch lesbar ist, wenn die Freigabe irgendwann verschwindet.

Der Ausgangs-Prompt (wörtlich)

Ich möchte ein Tic-Tac-Toe-Spiel im Browser spielen, bei dem der aktuelle Spielstand immer in eine Normalform transformiert und dargestellt wird. Dabei soll die Normalform die Eigenschaft haben, dass ich damit bis auf Symmetrie leicht alle möglichen Spielstände, insb. aber alle möglichen gewinnenden Spielverläufe aufzählen kann. So soll z.B. eine Eckenplatzierung am Anfang normalisiert werden auf eine Eckenplatzierung links oben usw. Es soll einen Computergegner geben, der perfekt spielt. Bitte generiere ein ultraknappes Python-Skript, welches mit ASCII-Art arbeitet.

Modell: Gemini (Stand des Verlaufs 2025). Erzeugt wurde daraus zuerst generated-0.py.

Was daran bemerkenswert ist

Der Prompt enthält vier Anforderungen, die sich teilweise widersprechen, und genau daraus erklärt sich der Verlauf der sieben Iterationen:

  1. “im Browser spielen” — wurde vom Modell stillschweigend fallen gelassen; alle Fassungen sind Terminal-Programme. Eine nicht erfüllte Anforderung, die niemandem auffiel, weil das Ergebnis lief.

  2. “Normalform bis auf Symmetrie” — die inhaltlich schwierigste Forderung (die Symmetriegruppe des Bretts hat acht Elemente) und die, an der die späteren Iterationen hängen.

  3. “Computergegner, der perfekt spielt” — verlangt Minimax; das ist die Funktion mm in gen7engine.py.

  4. “ultraknapp” — die Anforderung, die den Codestil des ganzen Kapitels erklärt. Sie steht in direktem Konflikt zu 2 und 3 und gewinnt, weil sie am leichtesten zu erfüllen ist.

Zusammen sind das vier Entscheidungen, die das Modell getroffen hat, ohne zu fragen — das Phänomen, das in der Anleitung zum Vibe Coding als “alle Entscheidungen, die man einem LLM überlässt, werden willkürlich getroffen” beschrieben ist.

Die weiteren Iterationen

Die Prompts von Fassung zu Fassung stehen im verlinkten Verlauf. Ihr Ergebnis liegt vollständig im Repository: generated-0.py bis generated-6.py und die aufgeteilte siebte Fassung (gen7engine.py, gen7ui.py, gen7tests.py). Der Vergleich zweier aufeinanderfolgender Dateien zeigt jeweils, was ein oder zwei Prompts bewirkt haben:

diff -u generated-3.py generated-4.py