La tarea
En este desafío, su tarea es dibujar una representación de arte ASCII de varias pilas de cajas de altura creciente. Se le da como entrada el número de pilas, que es un número entero positivo. La primera pila contiene una caja de tamaño 2x2
. La segunda pila contiene 2 cajas de tamaño 3x3
. En general, la k
pila th contiene k
cajas de tamaño (k+1)x(k+1)
.
Los bordes de cada cuadro se dibujan con los caracteres -|+
, y su interior consiste en espacios en blanco. Las cajas adyacentes comparten sus bordes, y las esquinas siempre deben dibujarse +
, incluso cuando forman parte de un borde de otra caja.
Ejemplos
Salida para 1
:
++
++
Salida para 2
:
+-+
| |
+-+
++ |
++-+
Salida para 3
:
+--+
| |
| |
+--+
| |
+-+ |
| +--+
+-+ |
++ | |
++-+--+
Salida para 5
:
+----+
| |
| |
| |
| |
+----+
| |
| |
| |
+---+ |
| +----+
| | |
| | |
+---+ |
| | |
| +----+
+--+ | |
| +---+ |
| | | |
+--+ | |
| | +----+
+-+ +---+ |
| +--+ | |
+-+ | | |
++ | | | |
++-+--+---+----+
Reglas y puntuación
La entrada se puede recibir de STDIN, como argumento de línea de comando o como argumento de función. La salida debe ir a STDOUT o equivalente más cercano. Se permite cualquier cantidad finita de espacios en blanco finales, al igual que las líneas nuevas anteriores y posteriores, pero no puede haber espacios anteriores adicionales.
Este es el código de golf, por lo que gana el conteo de bytes más bajo. Las lagunas estándar no están permitidas.
n
yn-1
son relativamente primos. Dos ventajas nunca se superpondrán.Integer.MaxValue
como entrada.Integer.MaxValue
o es equivalente.Respuestas:
CJam,
64 6058 bytesConstruyendo cada columna a la vez.
Pruébalo en línea aquí
fuente
Java (
407349 caracteres)Algunos caracteres gracias a @Zgarb y @Geobits
Código
No estoy seguro si esto es óptimo, pero es mi primer intento, probablemente intentaré ponerlo en un mejor lenguaje de golf más adelante. Cualquier sugerencia es bienvenida!
Expandido
Compruébalo aquí.
fuente
&&
y||
con&
y|
. 2) Moverint
declaraciones afor
(for(int i=0,j,x,z;...
). 3) Tienes demasiadas llaves al final de tu función de golf.a+1<=b+1
; que pueden ser reemplazados pora<=b
.q*q+1
probablemente solo debería asignarse a otra variable. Lo usas 9 veces más o menos, y puedes ahorrar un montón diciendoa=q*q+1
una vez. Además,q*(q+1)
es justoq*q+q
.Python 2,
144128bytesUn poco tonto. Un poco girando por todas partes.
fuente
Python, 188 bytes
Calcula matemáticamente el personaje en cada
x,y
posición. Fue complicado hacer que la+
letra s se imprima en ambos lados de cada cuadro, así como detener el extremo derecho+
de lo que serían lasn+1
cajas.fuente
long
que no tenga límite superior.C # - 304 bytes (función)
o 363 bytes (código completo)
Traté de evitar si las declaraciones. Sin golf:
fuente
long
en su lugar.Rubí (205 bytes)
Toma el número como argumentos de línea de comando. Comienza con un fallo que lleva a las nuevas líneas, pero eso está permitido.
fuente
JavaScript (ES6), 293 bytes
Ejecuté esto en Firefox. Ignora la
"
consola que agrega entre las cadenas. Esto es principalmente de ES5, pero intentaré jugar más al golf.Ungolfed / ES5
fuente
Pitón 2,
294290Lo hice funcionar, pero todavía necesito jugar más al golf. Sin embargo, estoy muy feliz, ¡eso fue duro (al menos para mí)!
Probablemente agregaré una explicación más tarde, a menos que sea inmediatamente claro para alguien ...? Lo dudo un poco.
Pruébalo aquí
fuente
Python - 243 bytes
Genera todas las columnas, reemplazando las superposiciones en las columnas, excepto la primera. Luego se rellena con espacios, transposiciones e impresiones.
Estoy considerando traducir a Pyth, pero necesitaré un reemplazo para la función pad.
fuente