Problema
Dado un entero positivo n
donden < 100
Salida de un patrón de diamante de la siguiente manera:
Entrada n=1
/\/\
\/\/
Entrada n=2
:
/\ /\
//\\/\/\//\\
\\//\/\/\\//
\/ \/
Entrada n=3
:
/\ /\
//\\ /\ /\ //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
\\// \/ \/ \\//
\/ \/
Entrada n=4
:
/\ /\
//\\ /\ /\ //\\
///\\\ //\\ /\ /\ //\\ ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
\\\/// \\// \/ \/ \\// \\\///
\\// \/ \/ \\//
\/ \/
Y así.
Reglas
- Programa y función permitidos.
- Espacio en blanco al final permitido.
- Espacio en blanco inicial en líneas sin
/
o\
permitidas. - Nuevas líneas finales y principales permitidas.
- El código más corto en bytes gana
Respuestas:
SOGL V0.12 , 24 bytes
Pruébalo aquí!
Explicación:
fuente
╬
esa es una orden enferma.╬
lolCarbón ,
3027 bytesPruébalo en línea! El enlace es a la versión detallada del código. Explicación: Las primitivas de dibujo del carbón no pueden dibujar un diamante, porque los movimientos diagonales permanecen en cuadrados de la misma paridad. Editar: La nueva solución es dibujar un lado de un diamante y luego rotar todo el lienzo listo para dibujar el siguiente lado, permitiendo que un diamante se dibuje en un bucle. Este bucle está contenido en un bucle para dibujar todos los diamantes internos para cada diamante. El bucle más externo dibuja todos los diamantes adyacentes entre sí. Finalmente la imagen se refleja.
Tenga en cuenta que el carbón vegetal se ha extendido desde entonces y que se puede guardar otro byte utilizando
Increment
.fuente
APL (Dyalog) ,
706966 bytesPruébalo en línea!
Asume
⎕IO←0
, que es estándar en muchos sistemas, por lo que el programa está indexado en 0.Este es un tradfn que recibe información a través de STDIN.
Explicación
(un poco anticuado)
Tenga en cuenta que
⍺
es el argumento izquierdo,⍵
es el argumento derecho y⍺⍺
es el operador izquierdo.B
Es una función que ayuda a reflejar los diamantes. Toma la cadena como el argumento derecho y la función inversa como la izquierda (también loB
es un operador).Y ahora vamos a la parte principal del programa.
Esto es necesario para garantizar que todos los triángulos creados para cada elemento en el rango
⌽⍳A
tengan la misma altura para que luego puedan concatenarse entre sí.Ahora la parte superior izquierda del patrón está completa. Todo lo que queda es voltearlo verticalmente y luego horizontalmente.
¡Y eso es! La salida es una matriz de caracteres con
/\
sy rellena con espacios.fuente
05AB1E ,
47434135343332 bytesPruébalo en línea!
(-4 bytes gracias a @Emigna que sugirió 3 mejoras)
Esta explicación fue para la versión anterior, ha habido algunas iteraciones desde entonces.
fuente
η
lugar de sufijos ya que son los mismos para esta cadena.N£
es lo mismo que¨
aquí y€R
esí
.CJam ,
6563 bytesPruébalo en línea!
Explicación
En esta explicación, me referiré al número de entrada como
n
.fuente
e#
por qué en la explicación?#
no es un comentario en CJam - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign , a pesar de que está en muchos otros idiomas. Como CJam es un lenguaje de golf, todos los comandos de un carácter se utilizan para la funcionalidad apropiada para el golf. Los comentarios solo son útiles para el código no protegido, por lo que utiliza una secuencia de 2 caracteres, lo que libera la secuencia de un carácter para otra cosaPython 2 ,
152147143140 bytes-1 byte gracias a musicman523
Pruébalo en línea!
Esto funciona cortando las columnas internas del diamante más grande para hacer las más pequeñas, utilizando
[0,..,n,n,..,0]
para controlar la cantidad de columnas que se eliminarán.fuente
r=r+
ar+=
Pyth,
3532 bytesBanco de pruebas
Hecho para ver cómo diferirían los enfoques de mi y @ LeakyNun.
fuente
Dyalog APL, 46
fuente
{}
a su respuesta, ya que deben incluirse.Pyth , 49 bytes
Pruébalo en línea!
fuente
V , 38 bytes
Pruébalo en línea!
fuente