Snake KI

Beschreibung

Wie der Name "Snake KI" bereits vermuten lässt, handelt es sich hierbei um eine eigene Version von Snake mit einer KI (hier ein Algorithmus). In diesem Spiel muss eine hungrige, durch den Spieler gesteuerte Schlange gefüttert werden, ohne mit sich selbst, dem Rand des Spielfelds oder der KI-gesteuerten Schlange zusammenzustossen.

Dieses Projekt entwickelte ich in C#, weswegen es nur auf Windows-Geräten verfügbar ist.

Wie wird gespielt?

Die Steuerung von Snake KI ist sehr einfach. Mit den Pfeiltasten oder mit W, A, S und D lässt sich die Schlange nach oben, links, unten und rechts lenken.

Falls sie mit sich selbst, einer Wand oder der anderen Schlange kollidiert, verliert der Spieler ein Leben. Insgesamt stehen drei Leben zur Verfügung. Sobald dem Spieler die Leben ausgehen, wird das Spiel zurückgesetzt. Die KI verliert ihre Grösse, sollte sie dasselbe Schicksal ereilen.

Der Spieler steuert die blaue und die KI wiederum die rote Schlange. Immer, wenn eine Schlange mit dem Futter in Berührung kommt, wächst sie um ein Feld.

Das Spiel lässt sich als EXE-Datei herunterladen und spielen. Es ist keine Installation notwendig und es werden keine Dateien auf der Festplatte verändert.
Da ich kein verifizierter Entwickler bin, erscheint vermutlich die Meldung "Der Computer wurde durch Windows geschützt". Um das Spiel dennoch zu starten, muss "Weitere Informationen" und anschliessend "Trotzdem ausführen" ausgewählt werden.

Download 1080p Download 720p

Entwicklung

Als ich im ersten Lehrjahr begann, C# zu lernen, wollte ich bereits ein Computerspiel entwickeln. Dementsprechend entschied ich mich, Snake nachzuprogrammieren. Dies ist mein allererstes Computerspiel.

Zuerst werden Linien auf eine PictureBox gezeichnet, um das Spielfeld darzustellen. Danach werden Quadrate hinzugefügt, welche die Schlange verkörpern.

Die Positionen der einzelnen Schlangensegmente sind in einem Array abgespeichert. Sobald der Schlangenkopf auf einem Feld mit Futter landet, wird ein Element zu diesem Array hinzugefügt.

Das Futter wird stets an einer anderen Stelle neu generiert, nachdem es gefressen wurde. In meinen ersten Versionen von Snake bestand noch ein Fehler, wodurch das Futter hin und wieder auf der Schlange generiert wurde. Ab Snake 2.0 konnte dies nicht mehr geschehen.

Für die Steuerung nutzte ich Event Listener, die die Richtung der Schlange ändern können. Ab der Version 2.0 fügte ich ein if-Statement hinzu, welches eine 180-Grad-Kehrtwende verhindert. Anschliessend war es nicht mehr möglich, auf diese Weise mit sich selbst zu kollidieren.
Da man mehrere Richtungsänderungen gleichzeitig ausführen kann, erstellte ich ein Array, welches mit den jeweils nächsten Richtungsänderungen gefüllt wurde. Ab Version 2.0 änderte ich dies zu einer einfachen Variable, damit lediglich noch der letzte Tastendruck die Richtung bestimmt.

In der Version 1.0 war das Spiel äusserst simpel mit nur einer Schlange. Später erstellte ich eine Mehrspielerversion (Version 1.1), die es ermöglicht, mit zwei Spielern auf einer Tastatur zu spielen.
Die Version 2.0 enthält viele Fehlerbehebungen und einige neue Einstellungen. Da die neuen Features wiederum Fehler beinhalteten, verbesserte ich diese Version, bis ich bei 2.3 angelangte.
In der darauffolgenden Version von Snake (Snake KI) ersetzte ich die gegnerische Schlange durch einen selbst entwickelten Algorithmus.

Die KI-Schlange steuert jederzeit auf das Futter zu, ohne Hindernisse zu beachten. Sie weicht Hindernissen erst aus, falls diese sich ein Feld neben oder vor dem Kopf befinden. Der Steuerungsalgorithmus basiert vor allem auf zufällig generierten Zahlen und der Reaktion auf Hindernissen. Mit der richtigen Taktik lässt sich die KI leicht in Sackgassen locken.