Order and Chaos es una variante de Tic-Tac-Toe jugado en un tablero de 6x6. ¡Sin embargo, lo que hace que el juego sea único es que ambos jugadores pueden colocar una X o una O! Cada turno (comenzando con Orden), un jugador coloca una X o una O en cualquier casilla desocupada.
Ganar es simple. El orden gana si hay 5 X u Os (vertical, horizontal o diagonal) en una fila en el tablero. El caos gana si el tablero está lleno y no hay cadenas de 5 X u Os en el tablero. ¿Tu trabajo? Bueno, dado que esto es Programando Puzzles y Code Golf, vas a programar el juego y jugarlo.
Las normas
- Debe aceptar la entrada como
x y t
, dondex
yy
son coordenadas, yt
es el tipo de mosaico (X
oO
). Las coordenadas comienzan0 0
en la esquina superior izquierda y aumentan hasta5 5
(la esquina inferior derecha). - Debe aceptar
q
dejar de fumar e imprimirINVALID
si el usuario ingresa coordenadas inválidas, mosaicos, cualquier entrada que no esté en formax y t
o intente colocar un mosaico donde ya haya uno. (La única excepción esq
, ya que esto cierra el programa). - Si Order gana, saldrá
P1 WINS
. Si gana el Caos, saldrásP2 WINS
. - El orden debe ir primero.
- Un espacio en blanco está representado por
.
. - Las fichas son
X
yO
(mayúsculas). No tiene que aceptar minúsculas, pero sí mayúsculas. - Su tablero solo debe consistir en
.XO
. - En realidad, estás simulando a ambos jugadores jugando, sin que te den un tablero y controlando quién gana. Acepta un movimiento como entrada, luego imprime el tablero, acepta otro movimiento, y así sucesivamente, hasta que un jugador gana.
El tablero de inicio se ve así:
......
......
......
......
......
......
Y después de las entradas del primer jugador (Orden) 1 2 X
, debería verse así:
......
......
.X....
......
......
......
Del mismo modo, cuando el próximo jugador (Caos) ingrese 3 3 O
, se verá así:
......
......
.X....
...O..
......
......
Y esto continúa hasta que un jugador gana.
Como siempre, las lagunas estándar que eliminan la diversión de todo están prohibidas.
El ganador es el que tiene el código más corto el 15 de junio a las 00:00 UTC (aproximadamente un mes desde el momento en que se publicó este desafío).
fuente
INVALID
. Lo he editado ahora, gracias.Respuestas:
PHP, 316
Aquí está mi presentación. Tiene que ser ejecutado por php en la línea de comando.
Tenga en cuenta que este código produce avisos debido a algunos atajos que hice. Avísame si esto está bien. Puedo arreglarlo agregando algunos caracteres más. Revisé esta página y la respuesta principal dice asumir que los informes de errores están desactivados si no hay ninguna mención al respecto.
Y aquí está la versión sin golf del código:
fuente
JavaScript, 360
Editar juego interactivo modificado, debe ejecutarse incluso en MSIE
Según lo solicitado, juego basado en texto, entrada por ventana emergente, salida en consola (para tener una fuente monoespaciada).
Salga del juego con 'q' o haga clic en 'cancelar' cuando se le solicite.
Al no utilizar las funciones de ES5, debería ejecutarse en cualquier navegador moderno (donde puede tener un panel de consola JS)
Ahora, una versión más interactiva y gráfica más divertida , ejecute el fragmento para jugar.
Mostrar fragmento de código
fuente
Java, 565 caracteres D:
Este es probablemente el código de golf más largo de la historia. Realmente no soy bueno en esto.
fuente
Octava, 453
La implementación es bastante sencilla, el único "truco" real para usar
format plus
para encargarse de la impresión. Aquí hay una versión comentada:Debido al requisito de verificar la sintaxis y la validez de entrada, el código se usa
fread()
para leer un carácter a la vez.Me ocupé de enviar el tablero y los mensajes de manera ordenada. Si se acepta alguna salida adicional, podría reducir un par de bytes. Por ejemplo, usando la impresión automática (no
disp(F)
), la pizarra se mostraría comoAdemás, interpreté que cada movimiento se da en una línea separada.
Interacción de muestra (el
-q
cambio es solo para suprimir el encabezado de Octave):El movimiento no válido provocó la salida del programa (no estoy seguro de si eso era lo que se pretendía).
fuente
x y t
en una línea separada (y ninguna otra entrada).