Schreiben Sie ein Programm, um Connect 4 zu spielen . Sie erhalten den Status der Tafel als Eingabe und müssen entscheiden, in welche Spalte Sie Ihre Figur legen möchten, um entweder 4 in einer Reihe (horizontal, vertikal oder diagonal) zu erhalten oder Ihren Gegner daran zu hindern, dasselbe zu tun.
Das Board ist ein 6x7-Array, in dem jede Zelle leer sein kann (''), dein Teil ('X') oder das Teil deines Gegners ('O') enthalten kann. Eine Beispieltafel:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Sie möchten in Spalte 3 (Spalten 0-6, von links nummeriert) um den diagonalen Gewinn spielen. Sie geben also Folgendes aus:
3
Ihr Code muss eine Spaltennummer ausgeben und die folgenden Kriterien erfüllen:
- Sie können nicht in einer Spalte spielen, die bereits 6 Teile enthält.
- Wenn es mindestens einen Gewinnzug gibt, müssen Sie einen davon spielen.
- Wenn Sie verhindern können, dass Ihr Gegner bei seinem nächsten Zug gewinnt, müssen Sie dies tun.
Beachten Sie, dass ein optimales Spiel nicht erforderlich ist, nur, dass Sie sofort gewinnen oder den sofortigen Gewinn Ihres Gegners verhindern. Wenn Ihr Gegner mehr als eine Möglichkeit zum Gewinnen hat, müssen Sie keine davon blockieren.
Sie erhalten das Board als Standardeingabe und müssen eine Spaltennummer drucken, in der Sie auf der Standardausgabe spielen möchten. Das Board ist garantiert gut geformt (keine Löcher, mindestens ein möglicher Zug) und hat für keinen Spieler bereits einen Gewinn.
Kürzester Code gewinnt.
Beispiel 1
X
O
X
O
OOO X
XXX O
Sie müssen entweder Spalte 0 oder 4 spielen, um zu gewinnen.
Beispiel 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Sie müssen Spalte 3 spielen, um den sofortigen Gewinn Ihres Gegners zu blockieren.
Beispiel 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Sie können Ihren Gegner nicht am Gewinnen hindern oder gewinnen, also können Sie jede Spalte 1-6 spielen (0 ist voll).
Beispiel 4
X
O
X
OOO
XOX
OXOX
Sie können nicht in Spalte 3 spielen, da dies Ihren Gegner sofort gewinnen lässt. Sie können in den Spalten 1-2 oder 4-6 spielen.