La oferta de invierno de Scream ™ está activada y acabas de atrapar un intenso juego de acción minimalista, Super Square . Al jugarlo, te das cuenta de que el juego es ridículamente difícil o que eres realmente malo en eso. En particular, existe este patrón de "lluvia" que parece atraparte cada vez ...
Frustrado, decides darte un desafío diferente: ¡Dibuja el patrón de lluvia en el arte ASCII!
Entrada
La entrada es un único entero positivo que indica el tamaño del patrón n
, dado a través de STDIN o argumento de función.
Salida
La salida es el patrón de lluvia en el tamaño especificado, devuelto como una cadena o impreso a través de STDOUT. Los espacios en blanco iniciales o finales antes o después de toda la imagen están bien. Además, la imagen no necesita estar al ras de la izquierda de la pantalla, sino que debe ser claramente discernible.
Aquí está n = 10
:
...................
| ----------------- |
| ............... |
| | ------------- | |
| | ........... | |
| | | --------- | | |
| | | ....... | | |
| | | | ----- | | | |
| | | | ... | | | |
| | | | | - | | | | |
| | | | | | | | | |
| | | | | - | | | | |
| | | | ... | | | |
| | | | ----- | | | |
| | | ....... | | |
| | | --------- | | |
| | ........... | |
| | ------------- | |
| ............... |
| ----------------- |
...................
Aquí está n = 5
:
---------
.......
| ----- |
| ... |
| | - | |
| | | |
| | - | |
| ... |
| ----- |
.......
---------
Y finalmente, aquí está n = 1
(solo las dos paredes más internas):
-
-
Construcción (para mayor claridad)
El área de juego se divide en dos pares de cuadrantes de la siguiente manera:
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
Los cuadrantes superior / inferior deben alternar entre paredes horizontales representadas por guiones -
y espacios sombreados con puntos .
. Los cuadrantes izquierdo / derecho deben alternar entre espacios y paredes verticales representados por tuberías
|
. Las diagonales principales están vacías y siempre deben llenarse con espacios.
El patrón de lluvia del tamaño n
tiene 2n
paredes, con paredes de los cuadrantes superior / inferior más cercanas al centro y paredes alternando entre cuadrantes a medida que nos alejamos del centro.
Puntuación
Este es el código golf, por lo que gana el código en la menor cantidad de bytes.
Respuestas:
CJam,
93 87 78 6159 bytesToma valor a
n
través de STDINPocos ejemplos:
Esto se puede jugar mucho, lo que haré mañana a primera hora.
Pruébalo en línea aquí
fuente
Haskell 150 bytes
Me doy cuenta de que no va a ganar, solo quería publicar mi primer codegolf: D
Úselo cargando en GHCi y llamando a
q n
dónden
está el tamaño.Algunos ejemplos:
Alguien probablemente pueda hacerlo mejor, soy bastante nuevo en Haskell.
fuente
Python,
204,198, 191 bytes"r" es una función de utilidad que escribe "b" rodeada de "a" reflejada, con un delimitador opcional (sí, los parámetros lambda pueden tener valores predeterminados). "f" es recursivo, generando lados y partes intermedias para cada nivel "g" es la función lluvia, que se puede llamar con un entero para devolver el texto solicitado.
fuente
Perl 5: 74 bytes (73 código +
-p
)Toma el parámetro en la entrada (se requiere el carácter de fin de línea para la función adecuada):
Sin golf:
fuente