Se você jogar um ovo ASCII em uma determinada direção, terá um splat ASCII de tamanho n . Ele "começa" com uma o
(a gema) e continua em uma determinada direção com "linhas" consistindo em 2 até n *
's. Os *
são separados por um "espaço", e as o
e todas as "linhas" de *
são separadas por "linhas" de "espaço".
A direção da splat pode ser qualquer uma das oito direções o
, por exemplo:
1 2 3
4 o 5
6 7 8
Estes são exemplos de splats ASCII de tamanho 4 em direcções 5
, 2
e 3
respectivamente. À esquerda está o splat ASCII real, e à direita é o mesmo splat, mas com as "linhas" do "espaço" substituídas por "linhas" reais ( -
ou seja, \
ou |
dependendo da direção) apenas para esclarecer o que se entende por um "linha" de espaço.
Size 4, direction 5
* | | |*
* | |*|
* * |*| |*
o * o| |*|
* * |*| |*
* | |*|
* | | |*
Size 4, direction 2
* * * * * * * *
-------
* * * * * *
-------
* * * *
-------
o o
Size 4, direction 3
* *
\
* * *\*
\ \
* * * *\*\*
\ \ \
o * * * o\*\*\*
Desafio
Dado n ≥ 1 e uma das 8 direções possíveis, escreva uma função ou programa que produza o splat ASCII de tamanho n na direção especificada.
Entrada e saída
Qualquer formato de entrada consistente e razoável é permitido. Você não precisa mapear as direções para os números inteiros 1 a 8 da mesma maneira que eu fiz - se alguma outra maneira de especificar a direção for mais fácil, vá em frente. Mas diga o que você fez se não estiver claro.
A saída consistirá em o
, *
espaços (U + 0020) e novas linhas (U + 000A) que produzem o splat ASCII. Espaços em branco à esquerda, à direita e à esquerda são permitidos em qualquer linha.
Regras
Isso é código-golfe . Aplicam-se regras padrão.
Mais exemplos
Size 1, any direction
o
Size 3, direction 6
* * o
* *
*
Size 5, direction 7
o
* *
* * *
* * * *
* * * * *