¡Juguemos un código de golf!
Dado un estado de tablero de tres en raya (Ejemplo :)
|x|x|o|
|x|o|x|
|o|o|x|
Determina si un juego es un win
a lose
o cat
. Su código debe mostrar cualquiera de estas opciones dado un estado. El juego anterior debería salirlose
Para ser claros: una ganancia se define como 3 x
s seguidos (diagonal, horizontal, vertical). una pérdida es de 3 o
s seguidos, mientras que un cat
juego en ninguno en una fila.
Para hacer las cosas interesantes, puede determinar su estructura de entrada para el estado, que luego debe explicar. Por ejemplo, xxoxoxoox
es un estado válido como se ve arriba, donde cada uno de los caracteres se lee de izquierda a derecha, de arriba a abajo. [['x','x','o'],['x','o','x'],['o','o','x']]
es el juego en matriz multidimensional leído de manera similar. Mientras 0x1a9
que hexadecimal 110101001
podría funcionar como una compresión adecuada donde 1
se puede manipular para x
sy 0
se puede manipular para o
.
Pero esas son solo algunas ideas, estoy seguro de que podría tener muchas propias.
Reglas de juego:
- Su programa debe poder aceptar cualquier estado viable.
- La forma de entrada debe poder representar cualquier estado.
- "El estado ganador debe determinarse desde el tablero"
- Asumir una tabla completa
Win
antes,lose
por ejemplo, en el caso 'xxxoooxxx'
El conteo de personajes más bajo gana
(win|lose|cat) [xo]{9}
donde la primera palabra denota si el juego es ganar, perder o gato (?) Para el jugador x. Capaz de representar cualquier estado.