Desafío
Dada una entrada n
, imprima un pastel de arte ASCII n
capas de altura, visto desde el lado, con dos velas en la parte superior. Consulte los ejemplos a continuación para obtener más detalles.
Salida
>> cake(1)
_|_|_
| |
+-----+
>> cake(3)
_|_|_
| |
+---------+
| |
+-------------+
| |
+-------------+
...y así.
Reglas
- Lagunas estándar prohibidas
- Por favor, intente una solución inteligente
- Este es el código de golf , por lo que la respuesta más corta en bytes gana. Sin embargo, la respuesta no será seleccionada.
¡Que te diviertas!
code-golf
ascii-art
kolmogorov-complexity
dkudriavtsev
fuente
fuente
i=int(input())
int(input())
ainput()
y laprint
declaración, además puede cambiar los cuatro espacios a uno (si es una pestaña, cámbielo a un espacio para que sea más obvio que es un personaje) . Además, su bytecount es 4 demasiado alto por alguna razón.Ruby,
109107bytesfuente
Lote, 233 bytes
¿Más corto que Python? Algo debe estar mal ...
fuente
JavaScript (ES6), 134 bytes
Un pastel recursivo.
Manifestación
fuente
Haskell, 103 bytes
Define una función
g
que devuelve una lista de cadenas que contienen las líneas de la salida.fuente
05AB1E,
115, 101 caracteres¡Ahorre 14 caracteres gracias a Adnan!
Definitivamente hay espacio para jugar al golf aquí.
Pruébalo en línea!
Tenga en cuenta que esto imprime todo desplazado por un espacio.
fuente
×
comando. Este es un ejemplo de cómo se usa.Python 2, 122 bytes
fuente
Python 3, 162 caracteres
No es muy inteligente, pero nunca he hecho uno de estos antes. (Editar: eliminó paréntesis innecesarios; reducido en un carácter más)
fuente
Pyth, 73 bytes
Un programa que toma la entrada de un número entero en STDIN e imprime el resultado.
Probablemente todavía hay algo de golf por hacer aquí.
Pruébalo en línea
Explicación después
fuente
JavaScript (ES6), 171 bytes
Primer pase, probablemente no óptimo ...
fuente
PHP,
150147138136130140 bytesnuevo enfoque:
versión anterior para referencia:
fuente
$argv
. : - /Vimscript,
116115 bytesBastante desordenado pero funciona!
Para llamarlo:
call A(3)
en un búfer vacío . Para cargar la función,source cake.vim
Explicación
2i+<Esc>5i-<Esc>
escribe la primera línea+-----+
o||<Esc>5i<Space><Esc>
agrega| |
en la segunda líneaVkyjply4lpjy4hp
se guarda en la macro@z
: selecciona visualmente ambas líneas, las tira, las pega debajo y les agrega 4 guiones y espacios.#@z
repite esto#
vezddl4x
elimina las últimas líneas y elimina los guiones en la parte inferior del pastel para que sea igual a la parte superior de la capa inferiorggd$i_|_|_
reemplaza la primera línea por la parte superior del pastel%ce
¡luego centra todo el pastel al ancho de la capa inferior! !fuente
SOGL V0.12 ,
2726 bytesPruébalo aquí!
Explicación:
fuente
Excel VBA,
139130127 BytesVentana inmediata anónima de VBE que toma la entrada de la celda
A1
y genera un pastel a la ventana inmediata de VBEfuente
CJam, 79 bytes
Pruébalo en línea
fuente
QBasic, 115 bytes
Sin golf
Imprime la línea superior con las velas; luego imprima el resto del pastel dos líneas a la vez.
SPC
, cuando se usa en unaPRINT
declaración, emite el número dado de espacios. Convenientemente, cuando se le da un argumento negativo, lo trata como 0, por lo que el hecho de queindent - 2
esté-2
en la última iteración no es un problema.STRING$
toma un recuento y un código de carácter (aquí, 45 para-
) y repite el carácter esa cantidad de veces. Aquí, tenemos que poner en mayúsculas y minúsculas la última línea (cuándoi=n
) para que sea 4 guiones más cortos de lo que sería de otra manera.fuente
C (gcc) ,
158153bytes-5 bytes gracias a ceilingcat.
Pruébalo en línea!
fuente