(Es gibt einige Herausforderungen, die die Verwendung der besten Strategie erfordern, aber hier tun wir es nicht. Selbst wenn Sie gewinnen können, dürfen Sie ein Unentschieden schließen.)
Herausforderung
Schreiben Sie ein Programm, das das Spiel Tic-Tac-Toe spielt. Es darf nicht verlieren (daher sollte es das Spiel entweder mit einem Unentschieden oder durch Gewinnen beenden).
Zulässige E / A-Methoden
- Der Eingang kann die aktuelle Karte sein. Sie können davon ausgehen, dass alle vorherigen Züge des 2. Spielers von Ihrer Engine gespielt wurden.
- Die Eingabe kann die Bewegung des ersten Spielers sein, und Ihre Funktion speichert, welche Bewegungen in der Vergangenheit stattgefunden haben. In diesem Fall wird die Funktion für jeden Zug mehrmals aufgerufen. oder die Funktion / Programm Eingabeaufforderung für mehrere Male.
- Sie können einen zusätzlichen Input eingeben, der besagt, ob Sie der erste Spieler sind, oder zwei (möglicherweise verwandte) Funktionen schreiben, um das Problem des ersten Spielers und des zweiten Spielers zu lösen. Wenn Ihr Programm die Eingabemethode 2 (Mehrfachaufruf) verwenden muss, können Sie entscheiden, was beim ersten Aufruf übergeben wird.
- Ausgang kann das Brett sein, nachdem Sie an der Reihe sind.
- Die Ausgabe kann Ihr Zug sein.
- Ein Zug kann als Zahlenpaar dargestellt werden (0-Indizierung oder 1-Indizierung), als Zahl im Bereich von 0 bis 8 oder als Zahl im Bereich von 1 bis 9.
- Die Karte kann als 3 × 3-Array oder als Array der Länge 9 dargestellt werden. Selbst wenn die Sprache ein 0-Index-Array hat, können Sie 1-Index verwenden.
- Die Zellen im Raster können 3 verschiedene Werte verwenden, um anzuzeigen
X
,O
und leer sein.
Gewinnkriterien
Kürzester Code in jeder Sprache gewinnen.
we can assume that all previous moves of the 2nd player were also played by our engine