Takuzu es un juego de lógica en el que debes completar una cuadrícula con celdas que contienen 0
sy 1
s. La cuadrícula debe seguir 3 reglas:
- No hay tres celdas consecutivas horizontales o verticales que puedan ser iguales.
- Debe haber un número igual de
0
s y1
s en cada fila y columna. - No hay dos filas iguales, y no hay dos columnas iguales.
Veamos una cuadrícula terminada:
0011
1100
0101
1010
Como puede ver, este tablero sigue la regla 1
, 2
y 3
. No hay tres celdas horizontales o verticales que sean iguales, todas las filas y columnas contienen un número igual de 0
sy 1
s, y no hay dos filas ni dos columnas iguales.
Veamos una cuadrícula que no es válida:
110100
010011
011010
101100
100011
001101
Hay muchos problemas con esta cuadrícula. Por ejemplo, la fila 5
tiene tres 0
s seguidas y la columna 2
tiene tres 1
s seguidas, seguidas de tres 0
s. Por lo tanto, esta no es una cuadrícula válida.
Tarea:
Su tarea es hacer un programa que, dada una matriz 2D de n
* n
0
s y 1
s, verifica el tablero para ver si es una tabla válida, acabada Takuzu.
Ejemplos:
0011
1100
0101
1010
Este tablero sigue todas las reglas y, por lo tanto, es un tablero válido de Takuzu. Debe devolver un valor verdadero para esto.
11
00
Este no es un tablero válido: la fila 1
no sigue la regla 2
. Debe devolver un valor falso para esto.
100110
101001
010101
100110
011010
011001
Este no es un tablero válido, falla (solo) debido a la regla 3: la primera y la cuarta fila son las mismas.
110100
001011
010011
101100
100110
011001
Este no es un tablero válido, falla (solo) debido a la regla 3: la primera y la cuarta columna son iguales.
011010
010101
101100
010011
100110
101001
Este es un tablero válido.
Reglas y especificaciones:
- Puede suponer que todos los tableros son cuadrados de dimensiones
n * n
, donden
es un número entero positivo. - Puede suponer que todas las tablas están terminadas.
- Puede tomar la entrada como una matriz 2D que contiene valores que significan
0
y1
, o como una cadena. - Debe generar valores consistentes de verdad y falsey para las tablas de verdad y falsey, y los valores que representan "verdad" y "falsey" no pueden ser los mismos.
Este es el código de golf , por lo que gana el código más corto en bytes.