Introdução
Da Wikipedia :
Um mosaico de uma superfície plana é o lado a lado de um avião usando uma ou mais formas geométricas, chamadas ladrilhos, sem sobreposições e sem espaços.
Um mosaico bastante conhecido é mostrado abaixo:
Os rhombi são lado a lado de uma maneira que não resulta em sobreposições ou lacunas e simula a troca de colunas de cubos.
Tarefa
Sua tarefa é escrever um programa que combine o losango da mesma maneira que a imagem acima. A entrada para o programa será as dimensões do mosaico:, em height x width
que largura é a quantidade de colunas e altura é a quantidade de linhas.
Um único cubo que é 1 x 1
(3 peças de rhombi) é representado exatamente da seguinte maneira:
_____
/\ \
/ \ \
/ \ _____\
\ / /
\ / /
\/_____ /
Portanto, se as entradas / dimensões forem 3 x 2
, esta deve ser a saída:
_____
/\ \
/ \ \
/ \ _____\ _____
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
\ / /
\ / /
\/_____ /
Como você pode ver, existem 3 linhas (altura) e 2 colunas (largura). As colunas estão trocando para cima e para baixo. Seu programa também deve fazer isso e começar mais alto. Por exemplo, 3 x 3
seria:
_____ _____
/\ \ /\ \
/ \ \ / \ \
/ \ _____\ _____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
\ / /
\ / /
\/_____ /
Regras
- O resultado deve ser gerado, a entrada pode ser feita da maneira que você quiser, mas deve corresponder à altura e largura
- Novas linhas à direita são permitidas
- As colunas de mosaico sempre começam de cima e alternam para cima e para baixo
- Os lados dos mosaicos devem ser compartilhados e os mosaicos devem ser colocados corretamente entre as outras colunas, sem espaços
- Seu envio pode ser uma função ou um programa completo
- Seu programa deve imprimir exatamente a saída acima, com a mesma entrada; em outras palavras, a saída deve seguir o mesmo formato para cubos / pavimentações
Premissas
- Você pode assumir que a entrada sempre será maior que
1 x 1
, portanto, você não precisa de casos em que um zero é inserido
Pontuação
Isso é código-golfe , então o código mais curto em bytes vence. As brechas padrão também são proibidas.