Trasfondo
No es realmente real, sshh!
Todo comenzó un día cuando un compañero de trabajo trajo una hogaza de pan casera para el cumpleaños de mi jefe.
A mi jefe realmente le gustaba esta barra de pan, y quería otra. Por desgracia, mi compañero de trabajo ha dejar de fumar, por lo que mi jefe necesita de mí para darle otra hogaza.
El problema es que no tengo idea de cómo hacer pan. Entonces le dije a mi jefe que no soy chef y que debería buscar a alguien que lo sea.
Él dijo: "Claro ... pero pierdes tu trabajo si no puedes hacerme un pan".
Entonces tuve una idea.
¡Le haría un pan de arte ascii con mi habilidad de codificación! Él dijo que sí, bajo 1 condición: "Debe hacerlo en menos de 351 bytes". Desafortunadamente para mí, mi mejor código de golf me llevó a 375 bytes. UH oh.
Luego mi jefe agregó 2 cosas: "Debes darme ese pan en una semana (4/13), y si lo haces, obtienes un mayor salario. Cuanto menor sea la cantidad de bytes que uses, mejor salario. Pero recuerda, si superas los 349 pierdes tu trabajo ".
¡Entonces necesito su ayuda en el idioma que elija para ayudarme a mantener mi trabajo!
Reglas
Estaba a punto de hacer un curl ... | sh
TinyURL, pero mi jefe me dijo que no puedo usar una lista de lagunas . Probablemente podría eludir las reglas, pero mi trabajo está en juego, así que no es una buena idea.
Lo que cuenta como un pan
Su programa o función debe tomar 3 enteros positivos como entrada. Si su idioma tiene una lista o matriz, puede tomar una lista o matriz de esos números. También puede tomarlos como argumentos para una función o programa, o una cadena de números separados por espacios para STDIN, una línea de comando o argumento de función, etc.
El primer número es el ancho de tu pan
El segundo número es la altura de su pan.
El tercer número es la profundidad de su pan.
Aquí hay un pan con un ancho 3
, una altura 2
y una profundidad de 1
:
/ --- \ / --- \ | El | || | ___ | /
¿Parece extraño? Aquí hay un 3x2x2:
/ --- \ / | / --- \ | El | El | / / | ___ | /
¿Qué tal un 3x3x3:
/ --- \ / | / | / --- \ | El | El | / / El | El | / / | ___ | /
Un 4x1x2:
/ ---- \ / | / ---- \ / | ____ | /
¡Espero que entiendas! Vea mi respuesta JS (ES6) a continuación para ver un ejemplo.
Ver también casos de prueba completos
Notas:
- No te preocupes por la entrada válida. Todos los tamaños serán enteros positivos.
- Debe aceptar los enteros positivos que su idioma pueda admitir.
- Si los números son tan altos, sus idiomas se bloquean por StackOverflow, desbordamiento de la longitud máxima de la cadena, etc., está bien.
Respuestas:
Carbón ,
353330 bytesGuardado 2 bytes gracias a @ ASCII-only
Ahorró 3 bytes gracias a @Neil al reorganizar el orden en que se dibujaron las líneas
Pruébalo en línea!
Este es mi primer intento en carbón. Escuché que era bueno en ascii-art , así que lo probé.
Explicación (obsoleta)
Ahora la parte posterior del pan está completa. Ahora viene la cara frontal.
fuente
↓→
con¶
(nueva línea) y\←←←ω
con←\←ω
←\←
pero la segunda←
pertenece antes queω
en la siguiente línea.↗δ→/
es un byte más corto que↗¹↗δ¶
, pero también guardé un par de bytes más al reorganizar el orden en que se dibujaron las líneas: ¡ Pruébelo en línea!C,
270290320328 bytesFinalmente (después de
dostres versiones incorrectas) funciona correctamente con tamaños grandes también.Pruébalo en línea!
fuente
JS (ES6), 375 bytes
Sin golf:
fuente
Python 2 ,
234216210 bytesPruébalo en línea!
Claro que se puede jugar mucho más al golf, pero es un comienzo.210 lo hará por mí por ahora.fuente
PHP, 420 bytes
Parece que alguien ha sido despedido, tal vez intente convencer a su jefe de que es mucho mejor en el backend.
La entrada se adjunta a la cadena de URL:
?a=[width]&b=[height]&c=[depth]
- puede probarlo en línea en mi host barato. En estas situaciones, me encanta usar solicitudes GET.Sin espíritu de transparencia:
fuente
JavaScript (ES6), 204 bytes
Donde
\n
representa el carácter literal de nueva línea.En lugar de jugar con caracteres repetidos, esto solo crea una matriz de tamaño adecuado y calcula qué carácter aparece en cada celda.
fuente