Escribe un programa que juegue un juego de Misère tic-tac-toe. Es decir, el objetivo es obligar a tu oponente a tomar tres seguidos.
Acepte en la entrada estándar una 'X' o una 'O' (la letra, no cero), para determinar de qué lado se reproducirá el programa. Luego saca un solo dígito para tu movimiento en tu turno y lee un solo dígito en el turno de tus oponentes hasta que termine el juego (X siempre va primero). Una vez que se decide un ganador, genera X u O para quién ganó, o D para un empate. Por ejemplo, si O obtiene 3 seguidos, X gana.
Suponga que el tablero está numerado así:
0|1|2
-----
3|4|5
-----
6|7|8
Idealmente, una solución será óptima y nunca perderá. Al igual que el tic-tac-toe, el juego perfecto siempre debe resultar en un empate. Si se cumple el protocolo anterior, puedo probar los envíos automáticamente contra una variedad de posibles estrategias.
El ganador es el código más corto. puntos de bonificación si elige al azar de movimientos igualmente buenos para hacerlo un poco más impredecible.
fuente