Tic Tac Toe Bot

Application Kata „Tic Tac Toe Bot“

Schreibe ein Konsolenprogramm, mit dem ein Spieler [Tic Tac Toe] gegen einen Bot spielen kann.

Mit Programmstart beginnt ein neues Spiel, das sich so darstellt:

 A B C  
0 | |  
 -+-+-  
1 | |  
 -+-+-  
2 | |  
Kommando:

Ob der menschliche Spieler oder der Bot Spieler 1 ist, also den ersten Zug machen darf, wird von Spiel zu Spiel per Zufall neu bestimmt. Falls der Bot Spieler 1 ist, enthält ein neues Spiel schon dessen ersten Zug.

Der menschliche Spieler zieht durch Eingabe der Koordinate des Feldes als Kommando [1], auf den er seinen Spielstein setzen will, z.B. „A0“ oder „C2“. Das Symbol des Spielsteins von Spieler 1 ist „X“, das für Spieler 2 ist „O“.

Nachdem der menschliche Spieler gezogen hat, zieht sofort der Bot. Die aktualisierte Anzeige enthält also immer zwei neue Spielsteine. Der menschliche Spieler ist quasi ständig am Zug.

Platziert ein Spieler seinen Stein auf einem schon gefüllten Feld, wird das Spielbrett nochmals ohne Veränderung angezeigt. Der Spieler darf es nochmals versuchen.

Nach jedem Zug wird das Spielbrett neu angezeigt. Wenn Spieler 1 nach A0 zieht und dann Spieler 2 nach B1, sieht das Spielbrett so aus:

 A B C  
0X| |  
 -+-+-  
1 |O|  
 -+-+-  
2 | |  
Kommando:

Um ein neues Spiel zu beginnen, wird „neu“ statt einer Spielfeldkoordinate eingegeben.

Um das Programm zu verlassen, wird „ende“ als Kommando eingegeben.

Ein Spiel endet, wenn kein weiterer Zug mehr möglich ist oder ein Spieler gewonnen hat. Eine entsprechende Meldung wird angezeigt, z.B.
A B C 
0X| | 
 -+-+-  
1X|O|O 
 -+-+-  
2X| | 
*** Der Botgewinnt
Kommando:
Ist ein Spiel beendet, werden nur noch die Kommandos „neu“ und „ende“ interpretiert.

Ressourcen

Endnoten

[1] Die Kommandos sollten ohne Berücksichtigung der Groß-/Kleinschreibung verstanden werden.