Introdução
Este é um é bem direto. Vamos desenhar uma cobra em ascii. Isso foi inspirado no antigo jogo de cobras, no qual você deve coletar as frutas e crescer continuamente.
Definição
Dado um número inteiro positivo N que representa o comprimento da cobra, desenhe uma cobra para que ela tenha um corpo de n mais uma cabeça e uma cauda.
Peças:
- cabeça:
<, >, ^, v
- rabo:
@
- vertical:
|
- horizontal:
-
Todos os cantos devem estar satisfeitos com um \
ou /
respectivamente. A menos que a cabeça termine em um canto, nesse caso, a cabeça <, >, ^, v
tem prioridade na direção em que a cobra está enrolada. ou seja, no exemplo do comprimento 1, ele é girado no sentido anti-horário e, portanto, a cabeça é girada dessa maneira. Para uma solução no sentido horário, seria para a direita >
.
A cobra deve começar no meio com a cauda, mas pode sair em qualquer direção que você escolher no sentido horário ou anti-horário. Também deve envolver-se firmemente à sua volta, à medida que se expande para fora de forma circular.
Exemplo
/--\
|/\|
||@|
|\-/
\--->
Onde @
está a cauda e a posição inicial. Como visto acima, a cauda começa no meio, sobe à esquerda em uma rotação anti-horária para fora.
Aqui o comprimento é 19
mais uma cauda e uma cabeça.
Como outro exemplo, aqui está o comprimento 1
:
<\
@
Ganhando
Isso é código-golfe, então a resposta que é enviada com o menor número de bytes vence, com tempo para ser usado como desempate.
Diverta-se!
@
é o meio (é possível adicionar alguns espaços para fazê-lo), declare "à direita" como a direção e faça apenas a cabeça apontar para baixo e declarar no sentido horário. Seus termos podem parecer claros para você, mas são realmente ambíguos. Eu sei que você provavelmente significaria um tão firmemente quanto possível cobra enrolada, mas você deve deixar isso claro
@---->
. Você provavelmente pretende condições mais estritas sobre o formato da cobra. Também deixam claro o quanto de espaço em branco é ou não é permitido