Os mosaicos hexagonais , ou inclinações do avião, são tricolores - o que significa que, usando apenas três cores, como Vermelho, Azul e Verde, cada hexágono pode ser colorido sem dois hexágonos que compartilham uma borda que compartilha uma cor. Um exemplo parcial mostrando esse padrão.
Dada uma disposição hexagonal parcial em ASCII (via STDIN, leitura de um arquivo, etc.), altere as cores dos caracteres (via códigos ANSI, manipulação de imagem etc.) para ajustar-se a essa coloração. A torção é o meio dos hexágonos (as *
abaixo) são as três cores, e as linhas entre elas precisam ser uma mistura das *
cores correspondentes das duas hexágonos . Se a linha estiver na borda externa, ela deve corresponder à correspondente *
.
Por exemplo, dada a telha hexagonal parcial de
/ \ / \ / \ / \
| * | * | * | * |
\ / \ / \ / \ /
| * | * | * |
\ / \ / \ /
suponha que decidimos colorir o hexágono superior esquerdo *
para vermelho e seus dois vizinhos para azul e verde (no sentido horário). Então a |
linha precisa ser magenta e a /
linha precisa ser amarela. Se continuarmos colorindo, acabaremos com algo assim (ampliado para maior clareza):
Ou, para uma entrada de
/ \
| * |
/ \ /
| * |
/ \ /
| * |
\ /
você pode pintá-lo dessa maneira (ampliado para maior clareza):
Alguns casos de teste adicionais (seu código deve ser capaz de lidar com eles):
/ \ / \
| * | * |
\ / \ /
| * |
/ \ / \
| * | * |
\ / \ /
/ \
| * |
\ / \
| * |
/ \ /
| * |
\ /
/ \
| * |
\ /
Regras
- É garantido que a entrada possui pelo menos um hexágono e nenhuma entrada terá um "furo".
- Você não precisa começar sua coloração com vermelho, desde que mantenha a regra das três cores.
- Se o ladrilho parcial puder ser bicolor, você poderá fazê-lo sem penalidade (como no segundo exemplo) - não será necessário extrapolar o ladrilho parcial para um ladrilho completo.
- Os centros do hexágono
*
devem ser coloridos em vermelho, azul ou verde, enquanto as linhas entre eles devem ser ciano, amarelo ou magenta. Por exemplo, ter uma Magenta*
não é permitido e um Vermelho|
ou\
ou/
deve estar na borda externa do desenho. Veja Cores abaixo. - Se o seu console não tiver essas cores exatas, use a aproximação mais próxima e especifique na sua resposta qual aproximação você está usando.
- Os espaços em branco à esquerda ou à direita, incluindo as novas linhas à direita, são aceitáveis desde que os caracteres estejam alinhados.
- O mosaico parcial pode ser inserido com preenchimento de espaço para formar um retângulo, se isso facilitar o código.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- A saída pode ser no console, salva como imagem, etc.
- Lacunas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
Cores e misturas de cores:
As três cores base disponíveis são (com códigos de cores no formato decimal RGB):
- Vermelho
(255,0,0)
- Verde
(0,255,0)
- Azul
(0,0,255)
As combinações são:
- Vermelho e Verde combinam para fazer Amarelo
(255,255,0)
- Azul e verde combinam para fazer ciano
(0,255,255)
- Vermelho e azul combinam para fazer Magenta
(255,0,255)
*