Ich habe bereits vor einiger Zeit einmal ChatGPT genutzt, um das klassische Spiel Snake per AI als Python-Script erstellen zu lassen. Seitdem ist einiges an Zeit vergangen und man bekommt Zugriff auf neue Modelle und daher habe ich mir gedacht, dass ich einfach mal einen Prompt nutze und damit die bekannten Large Language Models fĂŒttere. In diesem Beitrag gibt es nun das Ergebnis.
Prompt
ZunĂ€chst möchte ich euch natĂŒrlich meinen Prompt zur VerfĂŒgung stellen.
Please create a complete Python script to implement the classic Snake game.
Game specifications:
- The game should follow the traditional Snake game rules:
- The player controls a snake that moves continuously on the screen.
- The objective is to eat „food“ to grow the snake, and the game ends if the snake collides with itself or the screen boundaries.
Visual elements:
- The background of the game should be black.
- The snake should be green in color.
- The food that the snake eats should be represented as red squares.
Control options:
- The player should be able to control the snake using either the arrow keys (up, down, left, right) or the WASD keys (W = up, A = left, S = down, D = right).
General requirements:
- The script should be self-contained, complete, and runnable.
- Use any suitable Python libraries (e.g., Pygame) to create the game window and handle user input, movement, and game logic.
- Ensure the snake moves in a grid-like fashion and can grow as it eats the food.
Ihr seht also, dass ich recht prĂ€zise bin mit meinen Anweisungen. Ich gehe kurz auf die Steuermöglichkeit des Nutzers drauf ein und bestimmte die Farben fĂŒr den Hintergrund, die Schlange und das Essen. DarĂŒber hinaus beschreibe ich noch kurz die Funktionsweise und gebe an, dass nur PyGame als Library verwendet werden soll.
OpenAI – GPT-4o
ZunĂ€chst lassen wir einen der Platzhirsche ran, nĂ€mlich GPT-4o aus dem Hause OpenAI. Das Ergebnis kann sich durchaus sehen lassen. Die Steuerung ist sowohl mit Pfeiltasten, als auch mit WASD möglich. AuĂerdem wurde direkt ein Punktesystem im linken oberen Bereich integriert.
Wenn man allerdings das Spiel verliert, so wird der Punktestand nicht zurĂŒckgesetzt und man zĂ€hlt einfach die Punkte weiter hoch. Auch kann man den Bildschirmrand verlassen und taucht auf der anderen Seite wieder auf. Laut dem Prompt sollte dieses Vorgehen eigentlich nicht möglich sein.
OpenAI – o1-preview
Vor kurzem hat OpenAI eine neue LLM-Reihe angekĂŒndigt, die auf den o1 hört. Dieses LLM zeichnet sich dadurch aus, dass es zunĂ€chst nachdenket, bevor es eine Antwort prĂ€sentieren. Diese Gedanken werden dem Nutzer auch prĂ€sentiert, so dass man manche Schritte des Modells einfach besser nachvollziehen kann.
Hier nun ein paar Screenshots von der Version.
Auch hier wurde die Aufgabe schnell gelöst, allerdings wurde kein Score ausgeben. Dies war aber auch nicht explizit in den Anforderungen erwĂ€hnt. AuĂerdem beendet sich das Spiel, sobald der Spieler einen Fehler macht. DarĂŒber hinaus wird das Spiel auch beendet, sobald man den Rand des Spielfeldes berĂŒhrt.
xAI – Grok 2
Bei Grok handelt es sich um einen Chatbot, der von xAI entwickelt wurde. GegrĂŒndet wurde diese Firma von Elon Musk im MĂ€rz 2023. Das Large Language Model steht nur und seitdem steht eine Version fĂŒr alle Premiumnutzer von X zur VerfĂŒgung.
Anders als bei den OpenAI-Modellen muss der Nutzer zunĂ€chst eine Taste drĂŒcken, um das Spiel zu starten. Dies empfinde ich als sehr praktisch, aber es war natĂŒrlich auch keine Anforderung. Die Schwierigkeit dieses Spiels ist deutlich höher, da die Geschwindigkeit einfach höher ist. DarĂŒber hinaus hat man nachdem Verlieren noch die Möglichkeit das Spiel zu beenden oder aber eine neue Runde zu starten.
Google – Gemini
AbschlieĂend wollen wir uns noch Gemini anschauen. Dabei handelt es sich um einen KI-basierter, multimodaler Chatbot von Google und DeepMind. Seit MĂ€rz 2023 steht diese in eingeschrĂ€nkter KapazitĂ€t zur VerfĂŒgung, wurde seitdem in ĂŒber 40 Sprachen veröffentlicht und ist jedem mit einem Google Konto offen.
Auch hier wurde die Aufgabe erfĂŒllt, allerdings musste man nachhelfen. Sobald man nĂ€mlich die erste Version starten wollte, erschien eine Fehlermeldung, dass eine Variable nicht initialisiert sei. Durch eine weitere Anfrage konnte das Problem dann aber gelöst werden, und eine lauffĂ€hige Version bereitgestellt werden. AuĂerdem sind die Spielelemente im Vergleich zu den anderen Modellen recht klein gewĂ€hlt.
Fazit
Alle hier getesteten Large Language Models konnten die Aufgabe erfĂŒllen. Dabei ist aber schon spannend zu sehen, dass sich die Antworten unterscheiden. Teilweise wurden Regeln ignoriert, wie das Beenden des Spiels sobald man das Spielfeld verlĂ€sst. Andererseits wurde mehr implementiert, wie ein Mechanismus zum Beenden oder zum Neustarten des Spiels. Insgesamt sind die Antworten jedoch sehr Ă€hnlich.
Ihr findet den Sourcecode zu allen Varianten in meinem GitHub Repository. Wenn ihr die einzelnen Varianten ausprobieren wollt, stellt sicher, dass ihr Python installiert habt. AnschlieĂen mĂŒsst ihr noch PyGame installieren, nutzt dafĂŒr den folgenden Befehl
pip install -r requirements.txt