(Existen algunos desafíos que requieren usar la mejor estrategia, pero aquí no lo hacemos. Incluso si puede ganar, se le permite hacer un empate)
Desafío
Escribe un programa que juegue el juego tic-tac-toe. No debe perder (por lo tanto, debe terminar el juego con un empate o ganando).
Métodos de E / S permitidos
- La entrada puede ser la placa actual. Puede suponer que todos los movimientos anteriores del segundo jugador fueron jugados por su motor.
- La entrada puede ser los movimientos del primer jugador, y su función almacena qué movimientos ocurrieron en el pasado. En este caso, la función se llama varias veces, una para cada movimiento; o la entrada de solicitud de función / programa varias veces.
- Se le permite tomar una entrada adicional que dice si es el primer jugador, o escribir dos funciones (posiblemente relacionadas) para resolver el problema del primer jugador y el del segundo jugador. Si su programa necesita usar el método de entrada 2 (llamada múltiple), puede decidir qué se pasa en la primera llamada.
- La salida puede ser el tablero después de tu turno.
- La salida puede ser su movimiento.
- Un movimiento puede representarse como un par de números (puede ser indexación 0 o indexación 1), un número en el rango 0 ~ 8 o un número en el rango 1 ~ 9.
- El tablero puede representarse como una matriz de 3 × 3, o una matriz de longitud 9. Incluso si el lenguaje tiene una matriz de indexación 0, puede usar la indexación 1.
- Las células de la parrilla pueden utilizar cualquiera de los 3 valores diferentes para indicar
X
,O
y vacío.
Criterios ganadores
El código más corto en cada idioma gana.
we can assume that all previous moves of the 2nd player were also played by our engine