Es treten zwei Bots gegeneinander an. Es sind Beispiele ethalten, eigene Bots können als Klassen in bot.py implementiert werden.
Das Spielfeld ist wie ein Pacman-Labyrinth aufgebaut. Die Bots treten mit ein oder zwei Figuren gegeneinander an. Es wird abwechselnd um jeweils ein Feld weitergezogen. Es gibt die Möglichkeit, nicht zu ziehen.
Derjenige Bot gewinnt, dessen Punktzahl am Ende des Spiels die höchste ist.
Aufwendige Grafik | Einfache Grafik |
---|---|
-
Repository herunterladen
Es gibt zwei Entwicklungszweige: den offiziellen master und den gemeinschaftlich entwickeltelten development
Lade nun das Repository als ZIP-Archiv herunter oder clone es mit git.
git clone https://github.com/RandInt83/AI-Challenge.git
-
Instaliere Abhängigkeiten
Zum Ausführen werden Numpy, Pygame und Matplotlib benötigt. Instaliere sie mit pip
pip3 install numpy pygame matplotlib
(Optional)
Eine Text-To-Speech Engine kann ein durchgeführtes Turnier moderieren. Hierfür
ist eine Installation des Pakets pyttsx notwendig
pip3 install numpy pygame matplotlib
- Programm starten
Starte das Programm mit Python 3.x
python3 main.py
Die Datei tounament.py startet ein Turnier.
In es können belibig viele Teams, dessen Bots aus bot.py
geladen werden können, an einem Turnier teilnehmen.
Das Turnier wird mit python3 turnament.py
gestartet.
Es spielt dann jedes Team gegen jedes andere Team auf zufälligen Karten.
Taste | Funktion |
---|---|
0 |
Spiel starten |
r |
Spiel neustarten |
q |
Spiel beenden und im Turniermodus das nächste Match aufrufen. |
t |
Grafik von Einfach auf Aufwendig schalten |
1 |
Bildwiederholrate auf 1 FPS |
2 |
Bildwiederholrate auf 3 FPS |
3 |
Bildwiederholrate auf 10 FPS |
4 |
Bildwiederholrate auf 20 FPS |
5 |
Bildwiederholrate auf 40 FPS |
6 |
Maximale Geschwindigkeit |
Im Verzeichniss maps können eigene Karten erstellt werden. Ein Pixel entspricht einem Block auf dem Feld und seine Farbe definiert die Art des Blockes.
Die PNG-Dateien müssen mit einer Nummer ab 1 benannt sein: M<int>.png
, also z.B. M1.png; M2.png; M3.png
.
In map.py
kann eingestellt werden welche Karten geladen werden sollen und ob vor dem Spiel die Karten zufällig gewählt werden sollen.
Block | Farbe | RGB-Code |
---|---|---|
Wand | Schwarz | 0, 0, 0 |
Pellet | Weiß | 255, 255, 255 |
Position Team Rot | Rot | 255, 0 ,0 |
Position Team Gelb | Gelb | 0, 255, 0 |
Position Team Blau | Blau | 0, 0, 255 |
Position Team Grün | Grün | 255, 255, 0 |
Karte | Karte 1 M1.png |
Karte 2 M2.png |
Karte 3 M3.png |
Karte 4 M4.png |
---|---|---|---|---|
PNG-Dateien | ||||
Karten |
In CONTRIBUTE.md befindet sich ein Workflow zur Mitarbeit an diesem Projekt.