Este es un pastel:
_========_
| |
+________+
| |
+________+
| |
+________+
Tiene 8 de ancho, 3 de altura y 1 de profundidad.
Debe escribir un programa que haga un pastel a partir de 3 entradas. La primera entrada controla cuántos guiones bajos hay en el medio y =
s en la parte superior. Aquí está el primer pastel con un ancho de 10 en lugar de 8:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
La segunda entrada controla qué tan alto es el pastel. Aquí está el segundo pastel con una altura de 4 en lugar de 3:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Tenga en cuenta la repetición de las capas.
La tercera entrada controla qué tan profundo es. Eso es cuántos | |
s incluir en la parte superior. Aquí está el tercer pastel con una profundidad de 2 en lugar de 1:
_==========_
| |
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Puede imprimir espacios en blanco al final. Casos de prueba:
Entrada: 3
, 3
,3
Salida:
_===_
| |
| |
| |
+___+
| |
+___+
| |
+___+
(Espero nunca tener este pastel)
Entrada: 3
, 2
,1
Salida:
_===_
| |
+___+
| |
+___+
Entrada: 5
, 5
,5
Salida:
_=====_
| |
| |
| |
| |
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
Respuestas:
V ,
25, 20 bytesPruébalo en línea!
Hexdump:
Gracias a @ nmjmcman101 por guardar tres bytes y recordarme a un operador anterior que guardó otros dos bytes.
Explicación:
a
,,b
yc
son los tres argumentos.fuente
Ò r|$.
conÒ|è
algunos bytes. Pruébalo en línea!è
incluso existía. Tuve que estrujar mi cerebro para recordar lo que hace. ¡Pero eso es realmente inteligente! De hecho, el uso de la variante en mayúsculas,È<char>
probablemente también puede guardar algunos bytes más en algunos otros lugares. ¡Gracias por recordarme! :)Carbón ,
3426 bytesPruébalo en línea! El enlace es a la versión detallada del código. Toma parámetros en el orden ancho, profundidad, altura. Explicación:
fuente
Mathematica, 167 bytes
fuente
PHP> = 7.1, 104 bytes
Versión en línea
fuente
for([,$w,$h,$t]=$argv;$i<2*$h+$t;)echo str_pad($e="_|+"[$b=$i++<$t?$i>1:2-($i-$t&1)],$w+1,"= _"[$b])."$e\n";
$b=$i++<$t?$i>1:1+$_++%2
.Ruby , 62 bytes
Pruébalo en línea!
fuente
Japt ,
5147 bytesPruébalo en línea!
La entrada se toma en el orden ancho, alto, profundidad.
fuente
Jalea ,
3029 bytes-1 byte que cambia de una adición a un XOR para traducir entre columnas externas e internas, permitiendo una búsqueda de 5 caracteres en lugar de tener dos
_
entradas.Programa completo de tomar tres argumentos del programa de
depth
,height
,width
y la impresión de la torta.Pruébalo en línea!
¿Cómo?
fuente
cc , 108 bytes
Pruébalo en línea!
fuente
Röda , 65 bytes
Pruébalo en línea!
fuente
Java 7 ,
169164158 bytesPruébalo en línea!
Sin golf:
fuente
u=t+u+"+\n" inside the for-loop:
(u = t + u + "+ \ n; a [2] -> 1;) s + = t;`. Pero buena respuesta, +1 de mi parte.05AB1E ,
3331 bytesPruébalo en línea!
Explicación
fuente
Lote de Windows,
211 180163 bytesGolfé un total de 48 bytes gracias a @Neil!
fuente
@
en cada línea y despuésdo
es ligeramente más corto que@echo off
. 2.@call set w=%%w%%_
evitasetlocal enabledelayedexpansion
. 3. Uso@for /l %%p in (2,1,%2)
. 4. En mi humilde opinión, debe agregar@set w=
para que el código funcione más de una vez.@set w=
, ¿el código no funcionará más de una vez?@for /l %%p in (1,1,%1)do
parece haber desaparecido. 2. Su pastel parece tener la altura incorrecta, al menos no parece coincidir con el caso de prueba cuando lo intento. 3. Si ejecuta el script dos veces en la misma sesión de comando, entonces el pastel se vuelve cada vez más ancho.@
después del&
. 2 Si cambia el segundo bucle a(2,1,%3)
y el tercer bucle a(1,1,%2)
, creo que puede eliminar laecho +%w%+
línea. 3. Si he contado correctamente, creo que deberías llenarw
con espacios en lugar de_
s, ya que eso dará como resultado menos sustituciones. (¡De lo@call set w= %%w%%
contrario , usaría el espacio es difícil de detectar!)Haskell , 87 bytes
fuente
(w#t)d= ...
guarda un byte.SOGL V0.12 , 25 bytes
Pruébalo aquí!
Espera la entrada como ancho, profundidad y altura.
fuente
Python 2,
12412212010592 bytes-15 bytes utilizando STDIN en lugar de argumentos del programa
-13 bytes cambiando a Python 2 (para
input()
ing enteros yprint
sentencias)-12 bytes de Caird Coinheringaahing
Pruébalo en línea!
Python 3,
124122120105 bytesPruébalo en línea!
Si no se requiere un programa completo:
Python 3,
8784 bytesPruébalo en línea!
fuente
Javascript (ES6),
161157 bytesfuente
Python 2 , 93 bytes
Pruébalo en línea!
fuente
Perl 5 , 85 + 1 (-a) = 86 bytes
Pruébalo en línea!
fuente
JavaScript / ES6, 90 bytes
Acabo de escribir una solución aproximada y superé la respuesta JS existente por la friolera de 56 bytes. Luego jugué 11 bytes.
Aquí hay una demostración.
fuente
Lienzo , 23 bytes.
Pruébalo aquí!
fuente