Aqui está um boneco de neve simples de arte ASCII :
_===_
(.,.)
( : )
( : )
Vamos fazer alguns amigos para ele. Este será o padrão geral para nossos snowpeople de arte ASCII:
HHHHH
HHHHH
X(LNR)Y
X(TTT)Y
(BBB)
Os espaços à esquerda e os parênteses são sempre os mesmos para todos os snowpeople. As letras diferentes representam seções do padrão que podem ser alteradas individualmente. Cada seção possui exatamente quatro predefinições para quais caracteres ASCII podem preenchê-la. Ao misturar e combinar essas predefinições para todas as oito seções, podemos fazer uma variedade de snowpeople.
Todas as predefinições
(Observe que os espaços são colocados em linhas vazias, de modo que a forma da seção esteja sempre correta.)
H é para o chapéu
Chapéu de palha
_===_
Chapéu mexicano
___ .....
Fez
_ /_\
-
___ (_*_)
N é para nariz / boca
Normal
,
Ponto
.
Linha
_
Nenhum
L é para o olho esquerdo
Ponto
.
Ponto maior
o
Maior ponto
O
Fechadas
-
R é para o olho direito
(Mesma lista do olho esquerdo.)
X é para o braço esquerdo
Braço normal
<
Braço para cima
\
Braço para baixo
/
Nenhum
Y é para o braço direito
Braço normal
>
Braço para cima
/
Braço para baixo
\
Nenhum
T é para torso
Botões
:
Colete
] [
Braços Internos
> <
Nenhum
B é para Base
Botões
:
Pés
" "
Plano
___
Nenhum
Desafio
Escreva um programa que HNLRXYTB
utilize uma cadeia de oito caracteres (via stdin ou linha de comando) no formato , onde cada letra é um dígito de 1 a 4 que indica qual predefinição usar para a seção correspondente do snowperson. Imprima o snowperson completo no stdout.
Por exemplo, a entrada 11114411
é o boneco de neve na parte superior da página. (Primeiro 1
: ele tem um chapéu de palha, segundo 1
: ele tem um nariz normal, etc.)
Outro exemplo, o snowperson para entrada 33232124
:
_
/_\
\(o_O)
(] [)>
( )
Detalhes
Quaisquer quantidades e combinações de espaços à esquerda / à direita e de novas linhas à esquerda / à direita são permitidas desde que ...
- o boneco de neve tem todas as suas seções organizadas corretamente uma em relação à outra, e
- nunca há mais de 64 caracteres de espaço em branco total (o padrão geral é de apenas 7 × 5, portanto, você provavelmente não atingirá esse limite).
Você não precisa imprimir linhas / colunas do padrão se elas contiverem apenas espaços em branco. por exemplo, a linha vazia do chapéu de palha não é necessária.
Você deve usar a ordem das peças, conforme indicado acima.
Em vez de um programa, você pode escrever uma função que aceita a sequência de dígitos como argumento. A saída deve ser impressa normalmente ou retornada como uma sequência.
- Você pode tratar a entrada como um número inteiro em vez de uma sequência, se preferir.
Pontuação
O código mais curto em bytes vence.
Pergunta bônus: Qual das 65536 pessoas distintas de neve é a sua favorita?