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 oe 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, 2e 3respectivamente. À 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
* *
* * *
* * * *
* * * * *