Tarea:
Considere el problema: "dado un tablero de ajedrez que falta un cuadrado, córtelo en 21 L-triominoes". Existe una prueba constructiva bien conocida de que esto se puede hacer para cualquier tamaño de tablero de ajedrez cuadrado que sea una potencia de dos. Funciona dividiendo el tablero de ajedrez en un tablero de ajedrez más pequeño con el agujero y un gran triomino y luego observando que ese triomino se puede cortar en cuatro triominoes de forma recursiva.
En esta tarea, debe cortar un tablero de ajedrez de 8x8 en triominoes en forma de L y luego colorearlos con cuatro colores para que no haya dos triominoes adyacentes que tengan el mismo color.
Especificación:
Su entrada es la posición del agujero, dada como un par de enteros. Puede elegir cuál es el índice de columna y cuál es el índice de fila. Puede elegir si cada uno comienza en 0 o en 1 y lejos de qué esquina aumentan. Puede requerir A..H como la primera coordenada en lugar de 0..7 o 1..8. También puede aceptar ambas coordenadas agrupadas en un solo número entero 0..63 o 1..64 en orden lexicográfico (fila mayor o columna mayor, de izquierda a derecha o de derecha a izquierda, de arriba a abajo o de abajo a arriba). Puede escribir un programa completo o una función.
Puede generar el mosaico como ASCII, como ASCII coloreado o como primitivas gráficas. Si elige la salida ASCII, puede elegir cuatro caracteres ASCII imprimibles para representar los cuatro colores. Si elige ASCII de color, puede elegir cuatro caracteres ASCII imprimibles o solo un carácter que no sea el espacio. El hoyo debe estar representado por el carácter de espacio. Si uno de tus personajes es el personaje espacial, ningún triomino adyacente al hoyo o en el borde del tablero de ajedrez puede ser de este color.
Si elige color ASCII o salida gráfica, puede elegir cuatro colores entre # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF o sus equivalentes más cercanos disponibles en su entorno. Si elige la salida gráfica, sus primitivas gráficas deben rellenarse con cuadrados de al menos 32x32 píxeles de tamaño y estar separadas por no más de dos píxeles de otro color. Si lo anterior excede la resolución de pantalla de su entorno, el requisito de tamaño mínimo se reduce al tamaño cuadrado más grande que todavía cabe en la pantalla.
Puede elegir cualquier mosaico válido del tablero de ajedrez dado. Puede elegir cuatro colores del mosaico que elija. Su elección de cuatro colores debe ser la misma en todas las salidas, pero no es necesario que use todos los colores en cada salida.
Ejemplos:
Salida posible para entrada = [0, 0] (esquina superior izquierda)
#??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##
Otra salida posible del mismo programa (input = [0, 7]):
??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##
También puede producir un programa diferente para la entrada de "D1" (tenga en cuenta la orientación no estándar pero permitida del tablero de ajedrez),
AABBCCAA
ACBACBAC
CCAABBCC
ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA