Escribe un programa para jugar el juego de Connect 4 . Se le da el estado del tablero como entrada y debe decidir en qué columna colocar su pieza para obtener 4 en fila (horizontal, vertical o diagonal) o bloquear a su oponente para que no haga lo mismo.
El tablero es una matriz de 6x7, donde cada celda puede estar vacía (''), contener su pieza ('X') o la pieza de su oponente ('O'). Un ejemplo de tablero:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Te gustaría jugar en la columna 3 (las columnas son 0-6, numeradas desde la izquierda) para la victoria diagonal. Entonces tu salida:
3
Su código debe generar un número de columna y debe cumplir los siguientes criterios:
- No puedes jugar en una columna que ya tiene 6 piezas.
- Si hay al menos un movimiento ganador, debes jugar uno de ellos.
- Si puedes evitar que tu oponente gane en su próximo movimiento, debes hacerlo.
Tenga en cuenta que el juego óptimo no es necesario, solo que obtiene una victoria inmediata o evita la victoria inmediata de su oponente. Si tu oponente tiene más de una forma de ganar, no necesitas bloquear ninguna de ellas.
Se le da el tablero en la entrada estándar y debe imprimir un número de columna en el que desea jugar en la salida estándar. Se garantiza que el tablero esté bien formado (sin agujeros, al menos un movimiento posible) y que no tenga una victoria para ninguno de los jugadores.
El código más corto gana.
Ejemplo 1
X
O
X
O
OOO X
XXX O
Debes jugar en la columna 0 o 4 para ganar.
Ejemplo 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Debes jugar la columna 3 para bloquear la victoria inmediata de tu oponente.
Ejemplo 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
No puedes ganar o evitar que tu oponente gane, así que puedes jugar cualquier columna 1-6 (0 está lleno).
Ejemplo 4
X
O
X
OOO
XOX
OXOX
No puedes jugar en la columna 3, ya que permite que tu oponente gane de inmediato. Puedes jugar en las columnas 1-2 o 4-6.
fuente