Escriba un programa o función que tome un entero positivo e imprima o devuelva una representación artística ASCII de una flecha de tiro con arco , escalada de acuerdo con la entrada.
Si la entrada es 1
la salida es
/\
/ \
\__/
||
||
||
||
||
||
||
||
/||\
/ || \
/ || \
// \\
/ \
Si la entrada es 2
la salida es
/\
/ \
/ \
/ \
\ /
\____/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ |__| \
/ / \ \
/ / \ \
// \\
/ \
Si la entrada es 3
la salida es
/\
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\______/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |____| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
Si la entrada es 4
la salida es
/\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\________/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
/| |\
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ | | \
/ |______| \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
/ / \ \
// \\
/ \
El patrón continúa para números de entrada más grandes: la flecha se escala en consecuencia.
Tenga en cuenta que para cualquier entrada N:
- La punta de flecha es un pentágono con 2 × N guiones bajos en la base, N barras en cada uno de los lados que se extienden desde la base y 2 × N barras en los dos lados que forman la punta de la flecha.
- El eje (incluida la parte dentro del fletching) consta de 11 × N líneas de dos barras verticales separadas por 2 × (N-1) espacios. La última línea tiene guiones bajos en lugar de espacios.
- El fletching rodea las líneas inferiores 3 × N del eje. Dos líneas de barras de 2 × N se extienden diagonalmente hacia abajo desde cualquier lado del eje y se unen con columnas verticales de barras.
- La flecha completa tiene 16 × N líneas de alto y 6 × N caracteres de ancho.
En su salida no debe haber líneas vacías antes de la punta de la flecha y solo hasta una nueva línea final.
Ninguna de las líneas de salida debe tener espacios iniciales innecesarios (el borde izquierdo del fletching debe estar lo más a la izquierda posible), pero cualquiera de las líneas puede tener cualquier cantidad de espacios finales.
La presentación más corta en bytes gana.
Respuestas:
Pyth,
149147146144146Editar 2015-9-23: tenía un error, corregido por 2 bytes. Podría ser más corto, no tengo tiempo ahora.
Todavía parece demasiado largo para una respuesta Pyth.
Explicación (casi actualizada)
Básicamente genero la transposición de la flecha, ya que su formato de línea es mucho más simple. Además, solo genero la mitad y luego lo invierto para ahorrar muchos bytes.
fuente
Perl, 298 bytes
Multilínea:
Salida:
Gracias a Dom Hastings por ayudarme a ahorrar 5 (y contar) bytes
fuente
$w=<>
declaración a la primera vez que la usas comofor$y(0..($w=<>)*16-1){
y muchos de los corchetes se pueden quitar (algunos cambian la salida, ¡pero creo que los estás pasando de todos modos!). También tu'_'
puede ser un literal_
. ¡Espero que ayude!Julia, 452 bytes
Esta respuesta no está muy inspirada, y no la he jugado más allá de lo evidentemente obvio. Tengo la intención de que esto sea un puntaje para que otras personas lo superen.
Pruébalo:
sin golf:
fuente
Rubí, 233
Estoy particularmente satisfecho con la técnica envolvente que solía dibujar
\
en la cabeza con una sola expresión (y también para/
)Sin golf en el programa de prueba
fuente