A venda de inverno do Scream ™ está ativada e você acabou de se divertir com um intenso jogo de ação minimalista, o Super Square . Ao jogá-lo, você percebe que o jogo é ridiculamente difícil ou você é muito ruim nisso. Em particular, há esse padrão de "chuva" que parece te pegar toda vez ...
Frustrado, você decide se desafiar: desenhe o padrão de chuva na arte ASCII!
Entrada
A entrada é um número inteiro positivo único, indicando o tamanho do padrão n
, fornecido via STDIN ou argumento de função.
Resultado
Saída é o padrão de chuva no tamanho especificado, retornado como uma sequência ou impresso via STDOUT. Os espaços em branco à esquerda ou à direita antes ou depois de toda a imagem estão corretos. Além disso, a imagem não precisa estar nivelada à esquerda da tela, mas deve ser claramente discernível.
Aqui está n = 10
:
...................
| ----------------- |
| ............... |
| | ------------- | |
| | ........... | |
| | | --------- | | |
| | | ....... | | |
| | | | ----- | | | |
| | | | ... | | | |
| | | | | - | | | | |
| | | | | | | | | |
| | | | | - | | | | |
| | | | ... | | | |
| | | | ----- | | | |
| | | ....... | | |
| | | --------- | | |
| | ........... | |
| | ------------- | |
| ............... |
| ----------------- |
...................
Aqui está n = 5
:
---------
.......
| ----- |
| ... |
| | - | |
| | | |
| | - | |
| ... |
| ----- |
.......
---------
E finalmente, aqui está n = 1
(apenas as duas paredes mais internas):
-
-
Construção (para maior clareza)
A área de jogo é dividida em dois pares de quadrantes da seguinte forma:
AAAAAAAAA
B AAAAAAA B
BB AAAAA BB
BBB AAA BBB
BBBB A BBBB
BBBBB BBBBB
BBBB A BBBB
BBB AAA BBB
BB AAAAA BB
B AAAAAAA B
AAAAAAAAA
Os quadrantes superior / inferior devem alternar entre paredes horizontais representadas por hífens -
e espaços sombreados com pontos .
. Os quadrantes esquerdo / direito devem alternar entre espaços e paredes verticais representadas por tubos
|
. As diagonais principais estão vazias e sempre devem ser preenchidas com espaços.
O padrão de tamanho das chuvas n
tem 2n
paredes, com paredes dos quadrantes superior / inferior mais próximos do centro e paredes alternando entre os quadrantes à medida que nos afastamos do centro.
Pontuação
Isso é código-golfe, então o código com o menor número de bytes vence.
Respostas:
CJam,
93 87 78 6159 bytesAdquire valor
n
via STDINPoucos exemplos:
Isso pode ser muito praticado, o que farei amanhã.
Experimente online aqui
fonte
Haskell 150 bytes
Sei que não vai ganhar, só queria postar meu primeiro codegolf: D
Use carregando no GHCi e ligando para
q n
onden
está o tamanho.Alguns exemplos:
Alguém provavelmente pode fazer melhor, eu sou bastante novo em Haskell.
fonte
Python,
204,198, 191 bytes"r" é uma função utilitária que escreve "b" cercada por "a" refletido, com um delimitador opcional (sim, os parâmetros lambda podem ter padrões). "f" é recursivo, gerando lados e partes do meio para cada nível "g" é a função chuva, que pode ser chamada com um número inteiro para retornar o texto solicitado.
fonte
Perl 5: 74 bytes (código 73 +
-p
)Toma parâmetro na entrada (caractere de fim de linha necessário para o funcionamento adequado):
Ungolfed:
fonte