El 13 de marzo es reconocido como el Día Nacional de la Joya , que es el tema de este desafío. Entonces, dado un número entero n
donde n
es mayor que 0, crea una joya ASCII. Por ejemplo:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
La parte inferior se define como la parte inferior de la joya al par más alto de \/
. El resto es la cima. Para el ejemplo anterior donde n = 1
:
Bottom: \ / Top: __
\/ / \
Como se puede ver, la parte inferior está hecha de n + 1
capas de \/
con (1 * lines from the bottom) * 2
espacios en el medio con un máximo de n
líneas de la parte inferior de la joya. Si tomamos la segunda joya ( n = 2
), podemos ver que:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
La parte superior está hecha de un par de /\
con n*2
espacios entre con n*2
guiones en la parte superior.
Reglas
- Debe ser capaz de tomar cualquier número entero positivo distinto de cero como entrada del usuario
- Debe crear una joya con las especificaciones definidas anteriormente (actualizadas aquí):
- La parte superior está hecha de un par de
/\
conn*2
espacios entre conn*2
guiones en la parte superior. - La parte inferior está hecha de
n + 1
capas de\/
con(1 * lines from the bottom) * 2
espacios entre con un máximo den
líneas de la parte inferior de la joya.
- La parte superior está hecha de un par de
- Se permiten líneas nuevas después de la joya o espacios finales en cada línea.
- No se permiten lagunas estándar
Criterios ganadores
¡Menos bytes gana!
Respuestas:
Carbón de leña , 17 bytes
Código:
Explicación:
Un muy ordenado comando es
‖M
, que refleja también automáticamente/
en\
.Utiliza la codificación de carbón .
Pruébalo en línea!
fuente
05AB1E ,
2720 bytesPruébalo en línea!
Explicación
fuente
D„/\„\/‡
aÂ
.Python 2,
1019895 bytesPruébalo en línea!
Función anónima que toma un entero positivo y devuelve una cadena
Python 3.6, 92 bytes (Gracias a Ben Frankel)
No pude encontrar un intérprete en línea para esta versión, pero es un poco más corto debido a las cadenas f en v3.6
fuente
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Aprovechando las cuerdas f.PHP, 123 bytes
143 Bytes primera versión
Pruébalo aquí!
fuente
V ,
282726 bytes1 bytes guardados gracias a @DJMcMayhem utilizando en
>
lugar deÉ
<esc>
es0x1b
Pruébalo en línea!
Hexdump:
Explicación
Parte superior:
Fondo:
fuente
É<space>
a>
cuál al final de una macro se rellena implícitamente>>
>
sangrías un espacio en lugar de una pestaña?set expandtab
yset shiftwidth=1
Röda , 71 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 80 bytes
fuente
Python 3,
107105BytesToma un int de Stdin
fuente
MATL , 34 bytes
¡Pruébalo en MATL Online!
Explicación
fuente
PowerShell ,
76, 74 bytesNota: el ejemplo en línea contiene un poco de envoltura como demostración. Coloque en una función PoSH o script para ejecutar.
Pruébalo en línea!
fuente
' '*$i++
lugar de' '*($n-$_)
.C, 131 bytes
Pruébalo en línea!
fuente
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 bytes
¡intentalo!
explicación
El código consta de 3 partes:
fuente
Python3, 104 bytes
El programa toma un número entero de STDIN y devuelve la joya a STDOUT.
fuente
Pip , 43 bytes
42 bytes de código, +1 para
-n
bandera.Toma entrada como un argumento de línea de comando. Pruébalo en línea!
Explicación
Construye las dos primeras líneas por separado, luego el resto de la joya con una operación de mapa:
Otra solución
También 42 + 1 bytes, esta vez con la
-l
bandera:TIO
fuente
Pyth, 38 bytes
fuente
C, 115 bytes
Pruébalo en línea!
C, 123 bytes
Aunque el desafío no lo requiere, a expensas de 8 bytes, la función puede volverse reutilizable (la primera solución ahorra 8 bytes al confiar en la inicialización implícita de variables globales).
Pruébalo en línea!
fuente
Lote, 152 bytes
Pruebas:
fuente
C #, 187 bytes
Estoy seguro de que hay una solución más compacta, pero este es mi primer intento:
Pruébalo en línea ...
fuente
JavaScript (ES6), 93 bytes
Manifestación
Mostrar fragmento de código
fuente
cc , 121 bytes
Pruébalo en línea!
fuente
Perl
510994 + 1 (para bandera -p) = 95 BytesPruébalo en línea!
Se puede ejecutar así:
Sin golf
Explicación
fuente