Game-AITutorial

Programmieren von KIs für 4×4 TicTacToe – Part 1 – Generelles


In dieser sechsteiligen Reihe, werden wir vier verschiedene KIs implementieren, die das Spiel TicTacToe auf einem 4×4 Feld meistern sollen. Für die Implementierung haben wir uns für Javascript entschieden. Den Code werden wir ebenfalls hier teilen.

Die sechs Kapitel, die wir uns näher anschauen wollen sind dabei:
1. Part 1: Generelles
2. Part 2: Eine Heuristik getriebene KI
3. Part 3: Der MinMax-Algorithmus
4. Part 4: Eine Experten-KI
5. Part 5: Monte-Carlo Simulation
6. Part 6: Hardcore KI

Heute werden wir uns jedoch nur kurz das Game-Framework ansehen und eine einfache “Zufalls KI” bauen. Wir haben das Framework so einfach wie möglich gehalten, damit die Einarbeitungszeit möglichst kurz ist und der Code gut verständlich.

Eine TicTacToe-Zelle wir repräsentiert durch ein div mit der entsprechenden CSS-Klasse. Wir fügen die divs in der Funktion “generateGameArea()” zum DOM hinzu.

Diese Funktion erzeugt die divs und füllt das entsprechende Javascript Array “gameAreaArray”. Das Array wird benutzt, um zu speichern wo “X” (Menschlicher Spieler) und wo “O” (KI_Spieler) bzw. nichts “” gesetzt ist.
Wir haben dem Framework ebenfalls ein paar weitere Funktionen spendiert, die ziemlich selbsterklärend sein sollten: “checkWin” “setCross” und “setCircle”.
Das Spiel ist verloren/gewonnen wenn genau “size”-viele (in unserem Fall ist size=4) “X”s oder “O”s in einer Zeile, Spalte oder Diagonalen sind.

Die erste KI, die wir implementieren ist eine zufällige KI. Diese KI sucht sich also “nur” eine zufällige leere Zelle und platziert dort ein “O”. Der Code für diese KI ist ziemlich geradlinig. Darum überspringen wir unnötige Erklärungen und teilen die Funktion einfach mit euch:

Damit haben wir einen ersten und einfachen Schritt gemacht. Die nächsten zwei Posts werden hoffentlich etwas interessanter und leider wohl auch ein klein wenig komplexer, aber das kriegen wir auch hin! Im nächsten Post werden wir unserer KI etwas “echte Intelligenz” einhauchen, indem wir Heuristiken benutzen!

Finale TicTacToe:

Open in new window

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.