Como es sábado (UTC) y tengo hambre, me gustaría una porción de pizza. Te daré una orden y me gustaría una buena pizza caliente de arte ascii . ¿A la altura del desafío?
El Drive-Thru
Haré mi pedido donde sea que esté tu drive-thru, ya sea STDIN, un parámetro de función, un argumento de línea de comandos, pero no voy a ponerlo en una variable para ti. (Las expresiones de función JS deben asignarse a una variable).
El orden
Mi pedido tendrá 2 partes. El primero será un entero positivo, distinto de cero, de 3
a 6
. Este es el tamaño de mi pizza. Por ejemplo, una 6
pizza de tamaño sin coberturas se vería así:
/=====\
/ \
| |
| |
\ /
\=====/
Un tamaño 5
:
/====\
/ \
| |
\ /
\====/
Un tamaño 4
:
/===\
| |
| |
\===/
Un tamaño 3
/==\
| |
\==/
Los ingredientes
Mis ingredientes serán una cadena de letras MAYÚSCULAS. Aquí están los valores posibles:
P - Pepperoni S - Salchicha N - piNeapple J - Jalapeños B - Pimientos de plátano C - baCon
Debes colocarlos en la pizza en alguna parte. Si ordeno un tamaño 4 y PSPCJ
, entonces esta es una salida válida:
/===\
|PSPCJ|
| |
\===/
Asi es esto:
/===\
|P P J|
| S C |
\===/
Y esto:
/===\
| |
|PSPCJ|
\===/
No soy muy exigente con respecto a dónde están mis ingredientes en la pizza, siempre que no estén en la corteza o uno encima del otro.
La ventana de recogida
Iré a muchos lugares para recoger mi pizza, incluido STDOUT, un archivo, el valor de retorno de una función, pero no una variable.
Cosas extra
- Lagunas estándar prohibidas
- ¡Esto está etiquetado como code-golf, por lo que gana la respuesta más corta en bytes!
- No se preocupe por la entrada no válida (ingredientes> espacio para pizza, etc.)
- Vea mi respuesta (JS ES6) a continuación para ver un ejemplo (espero que pueda hacerlo mejor)
̶5̶,̶ ̶N̶N̶N̶
̶ es también una válida de entrada ̶ (o debe ser ̶ ̶5̶,̶ ̶N̶
̶ en su lugar) ̶ ̶ Además, ¿dónde están las setas ..? :( EDITAR: No importa la primera pregunta, veo que sus casos de prueba tienen 2x P
.