Tarefa:
Considere o problema: "dado um tabuleiro de xadrez com um quadrado faltando, corte-o em 21 L-triominos". Existe uma prova construtiva bem conhecida de que isso pode ser feito para qualquer tamanho quadrado de tabuleiro de xadrez com potência de dois. Ele funciona dividindo o tabuleiro de xadrez em um tabuleiro de xadrez menor com o buraco e um grande triomino e, em seguida, observando que esse triomino pode ser cortado recursivamente em quatro triominos.
Nesta tarefa, você deve cortar um tabuleiro de xadrez 8x8 em tri-dominó em forma de L e depois colori-lo com quatro cores, de modo que dois tri-dominó adjacentes tenham a mesma cor.
Especificação:
Sua entrada é a posição do furo, fornecida como um par de números inteiros. Você pode escolher qual é o índice da coluna e qual é o índice da linha. Você pode escolher se cada um começa em 0 ou em 1 e longe de qual canto eles aumentam. Você pode solicitar A..H como a primeira coordenada em vez de 0..7 ou 1..8. Você também pode aceitar as duas coordenadas agrupadas em um único número inteiro 0..63 ou 1..64 em ordem lexicográfica (linha principal ou coluna principal, da esquerda para a direita ou da direita para a esquerda, de cima para baixo ou de baixo para cima). Você pode escrever um programa completo ou uma função.
Você pode imprimir a lado a lado como ASCII, como ASCII colorido ou como primitivas gráficas. Se você escolher a saída ASCII, poderá escolher quatro caracteres ASCII imprimíveis para representar as quatro cores. Se você escolher ASCII colorido, poderá escolher quatro caracteres ASCII imprimíveis ou apenas um caractere que não seja o espaço. O furo deve ser representado pelo caractere de espaço. Se um dos seus personagens for o personagem do espaço, nenhum triomino adjacente ao buraco ou na borda do tabuleiro pode ser dessa cor.
Se você escolher saída ASCII colorida ou gráfica, poderá escolher quatro cores dentre # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF ou seus equivalentes mais próximos disponíveis em seu ambiente. Se você escolher saída gráfica, suas primitivas gráficas deverão ter quadrados preenchidos com tamanho mínimo de 32 x 32 pixels e separados por não mais de dois pixels de outra cor. Se o exposto acima exceder a resolução de tela do seu ambiente, o requisito de tamanho mínimo será reduzido para o maior tamanho quadrado que ainda cabe na tela.
Você pode escolher qualquer peça válida do tabuleiro de xadrez fornecido. Você pode escolher qualquer quatro cores do ladrilho que escolher. Sua escolha de quatro cores deve ser a mesma em todas as saídas, mas você não precisa usar todas as cores em todas as saídas.
Exemplos:
Possível saída para entrada = [0, 0] (canto superior esquerdo)
#??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##
Outra saída possível do mesmo programa (entrada = [0, 7]):
??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##
Um programa diferente também pode produzir, para a entrada de "D1" (observe a orientação não padrão, mas permitida do tabuleiro de xadrez),
AABBCCAA
ACBACBAC
CCAABBCC
ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA