Salida
# # # # # ##### ## # ## #### ####### # # ## #### ## ## # ### ####### # # # # ##### ### # # # # ### ##### ##### # # # ####### ### # ### # ## #### ## # # ### # ####### ## # ## ##### ##### # # # ## # # # # ##### # ## ## ####### # ####### #### ## # ### ### # # # # # ###### # # # # ### ##### # # #### ####### ### # ## ## ## # # ######## # # ## ##### # # # # ##### ## # # ####### # # ## ## ## # ### ####### #### # ##### ### # # # # ##### # # # # # ### ### # ## #### ####### # ####### ## ## # ##### # # # # ## # # # ##### ##### ## # ## ####### # ### # # ## #### ## # ### # ### ####### # # # ##### ##### ### # # # # ### ##### # # # # ####### ### # ## ## #### ## # # ####### #### ## # ## ##### # # # # # # # ## #### # # # # ### ####### ## # # ## ##### ## # ### # # ## # ### ####### ##### ### # # # # # ## #### #### ## # # # # # # # # ##### ## #### ####### # # #### ## ## # ### # # # # ##### # # ### ##### ##### # ####### ### # ### # ## ## # # ### # ####### # ## ##### ##### # # ## # # # ## ## ####### #### ### # # # # # # # # ### #### ####### ## ## # # # ##
Espacios finales permitidos. La solución más corta gana.
pista1:
gracias @Tahg por corregir la pista1
Respuestas:
SOGL V0.12 ,
171614 bytesPruébalo aquí!
En una actualización posterior
č▓
podría eliminarse por 12 bytes, que convierte ToS de una matriz de matrices de caracteres, una cadena de varias líneas a una matriz de cadenas[["#","#"],[" ","#"]] -> ["##"," #"]
-, porque┼
- el apéndice horizontal - no se adapta bien a las matrices de matrices de caracteres - queI
crea, porque también se usa para la rotación de matrices. En SOGL, una matriz de matrices de caracteres debería ser = matriz de cadenas, pero muchas cosas aún no lo admiten.Explicación:
fuente
JavaScript (ES6),
233217213198182170163122 bytesEditar: Guardado
1418 bytes gracias a @Shaggy. Guardado 3 bytes gracias a @ngn. Guardamos otros 12 bytes gracias a que los dos trabajaron juntos Ahorró 41 bytes al robar las observaciones de @ user202729 de que los cuartos usan reflejos en lugar de rotaciones. Sin golf:fuente
f=
aquí? Bien hecho, por cierto.f=
contar el byte, pero el fragmento de código no funciona sin él.LOGO,
375341297295278 + 3 bytesAgregue 3 bytes debido a la
-p
marca, que habilita el modo de perspectiva de forma predeterminada, por lo que no es necesario ejecutar elperspective
comando, ahorra 9 bytes en general.Use FMSLogo en Windows con formato de nueva línea Unix (LF) (FMSLogo tiene problemas al analizar el formato de nueva línea CR)
Desafortunadamente, no "¡Pruébelo en línea!" enlace porque no puedo encontrar ningún modo de perspectiva de soporte de intérprete en línea.
Idea: Dibuje una imagen de la imagen, luego recupere los píxeles de la imagen e imprima como salida.
Desglose de la imagen en partes simples repetidas:
.
Haz uso de la pista anterior. Sin embargo, dado que LOGO no admite la reflexión, solo podemos simular eso ingresando 3D (
perspective
) y girar la tortuga 180 grados alrededor de un eje paralelo a la pantalla de la computadora.Esto define una función auxiliar
g
, que da 2 parámetrosl
(longitud del lado de la imagen) yw
(procedimiento utilizado para dibujar la imagen), dibuja 3 copias de su imagen reflejada. (ver pista en la pregunta) El procedimientoh
realiza el procedimiento principal.fuente
90 fd
->90fd
y guardar algunos bytes.05AB1E ,
3026 bytesPruébalo en línea!
fuente
CJam , 30 bytes
Pruébalo en línea!
fuente
Python 2 ,
205195 ... 145144142144 bytesPruébalo en línea!
Inspirado por la respuesta JS de Neil .
fuente
n>>1
esn/=2
.a
se define y luego se usa una vez. Reemplazar su referencia con su valor podría ahorrar cuatro bytes.[...[x],...[x]][z]
selección .Haskell,
126125113106103 bytesUna implementación directa de hint1 en el spoiler.
La función
m
genera la siguiente iteración. Las funciones principales se aplicanm
6 veces. Detalles param
:Editar: @ngn guardó un byte y @Laikoni otro 3. ¡Gracias!
fuente
n$n$n$n$n$n["#"]
es más corto queiterate n["#"]!!6
:)e=[]:e;foldr(zipWith(:))e
lugar deimport Data.List;transpose
y luego acortarzipWith
.Java 7,
259 238 237200 bytesAhorré 2 bytes al eliminar {} en el bucle x, gracias ngn guardé
19 bytes de varios cambios de asignación, gracias Jonathan
guardó 24 bytes para imprimir vs devolver (no sabía que esto estaba permitido), y
guardó 13 bytes para cambios de bucle, gracias Nevay
Pruébalo en línea!
Mi primer desafío, y creo que respetable para Java. Utiliza la sugerencia 1 (que por cierto está mal, pero no puedo escribir comentarios). Probablemente se pueda jugar más, este pase fue básicamente como es, sin una bonita impresión.
fuente
s=1
del bucle for y reemplazándoloint s,t,x,y;
porint s=1,t,x,y;
.n[s-1-y][x]=o[y][x];n[y][t-1-x]=o[y][x];
->n[s-1-y][x]=n[y][t-1-x]=o[y][x];
.J ,
3027 bytesPruébalo en línea!
Versión original.
Pruébalo en línea!
fuente
Python 2, 586 bytes
Pruébalo en línea.
Python 2,
10321025 bytesMe gusta este más. Pero es mucho más largo. Podría jugar golf, pero no hay necesidad de eso. El enfoque de officialaimm es mucho más corto.
-7 gracias a Jonathan Frech
Pruébalo en línea.
fuente
[t]railing spaces
, aunque su solución omite algunos espacios.x=='!'
->x<'#'
if x.isdigit()
->if"/"<x<"@"
Mathematica,
11290 bytes¡Gracias a Jonathan Frech por su ayuda para ahorrar 2 bytes!
Pruébalo en línea!(Matemáticas)
Por algunas razones, Mathics imprime los espacios iniciales en todas las líneas excepto la primera cuando imprime una cadena de varias líneas. También Mathics no es compatible con el operador
.Explicación:
{{Reverse@#,Reverse/@#},{" "+0#,#}}
: Representa el reverso horizontal, reverso vertical, reemplazar todo por" "
y transponer (
es el operador de transposición en Mathematica), correspondiente a diferentes formas de reflejar o rotar la imagen.~Flatten~{{1,3},{2,4}}
: Acoplar en dimensiones particulares.Nest[ ... ,{{"#"}},6]
: Aplica la función dentro de{{"#"}}
6 veces.~Riffle~"<literal newline character>"
: Riffle un carácter de nueva línea entre cada línea.""<>
: Une todas las cuerdas juntas.fuente
Reverse
conR
y definirR=Reverse;
para guardar dos bytes.C # (.NET Core) ,
10161002980955 bytes¡Ahorró 14 bytes gracias a Kevin Cruijssen!
¡Ahorró 47 bytes gracias a Jonathan Frech!
Pruébalo en línea!
Explicación
El formato de la salida se almacena dentro de una matriz de números de 64 bits con signo, que se ajusta perfectamente ya que cada línea tiene 64 caracteres de longitud. Los espacios vacíos están representados por
0
y#
está representado por1
.Los números se convierten a su cadena binaria, los ceros se rellenan a la izquierda hasta que la cadena tenga 64 caracteres de ancho y luego los caracteres
y
0
y1
se reemplazan con#
.El código se almacena dentro de una función lamba, más específicamente a
System.Func<string>
.Algunas constantes en el
long[]
se acortan realizando algunos cambios de bits.fuente
long[] n=new[]
?l
no se necesita el seguimiento , probablemente pueda guardar aún más bytes .Carbón de leña , 42 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Sería 25 bytes si esto funcionara:
Explicación:
Genere manualmente la primera recursión, ya que no es posible rotar (1, 0.5). (Tal rotación solo tendría sentido si fuera 180 °).
Recorre los primeros cinco poderes de 2 (1, 2, 4, 8, 16).
Refleja el lienzo verticalmente. Esto completa el cuarto superior izquierdo del resultado.
Gire el lienzo 180 ° alrededor de un punto hasta la mitad del lado derecho. La copia termina en la posición correcta para el cuarto superior derecho del resultado.
Gire el lienzo 90 ° alrededor de la esquina inferior derecha. La copia de la esquina superior derecha termina en la posición correcta para la esquina inferior derecha del resultado. La copia de la esquina superior izquierda es extraña.
Recorta el lienzo al tamaño que queramos. El recorte comienza en el cursor o en la parte superior izquierda del lienzo, el que esté en la parte inferior derecha. Por lo tanto, el cursor se envía a (0, -1000) para asegurarse de que no interfiere con el recorte.
fuente
Dyalog APL , 29 bytes
Pruébalo en línea!
fuente
((⊖,⌽)⍪∊,⍉)⍣6⍪⍕#
con⎕ML←0
.Python 2 ,
715711bytesPruébalo en línea!
fuente
Perl 5 , 452 bytes
Código de 451 bytes + 1 para
-p
.Paquetes de todos los datos en la cadena, en lugar de robar @ Neil 's respuesta correcta .
Salida reversible de
xxd
un archivo de 451 bytes:Pruébalo en línea!
fuente
Jq 1.5 ,
538535488476 bytesEsta es una representación directa.
Todavía no he intentado ninguna codificación elegante.Reemplazado 0,0 pares con la función Z.¡Gracias nuevamente a Jonathan Frech por ayudar a eliminar 3 bytes!
Número de letras
Ejecución de la muestra
fuente
B: rec
y16) as $l|
.if.==0then" "else"#"end
->if.>0then"#"else" "end
.Python 2 ,
174164154 bytes (basado en operaciones matriciales)Pruébalo en línea!
fuente
import *
->import*
;in s.tolist()
->in s
Lienzo , 10 bytes.
Pruébalo aquí!
fuente
JavaScript (Node.js) , 1233 bytes
Pruébalo en línea!
fuente
C # (.NET Core) ,
976969 bytesPruébalo en línea!
fuente
<s>969</s>
para tachar los bytes anteriores.C # (.NET Core) , 739 bytes
Pruébalo en línea!
Utiliza el mismo enfoque es esta otra respuesta .
fuente
K (ngn / k) ,
323127 bytesPruébalo en línea!
6{
}/
6 veces hacer+x
transponer|x
revertir verticalmente+|+x
revertir horizontalmente,
concatenar verticalmente,'
concatenar horizontalmente,[A;B]
es el mismo queA,B
. ayuda a evitar paréntesisA
y alrededor de toda la expresión""x
use los elementos dex
como índices en la cadena vacía. la indexación fuera de los límites produce espacios, por lo que esta expresión devolverá una matriz de todos los espacios, del mismo tamaño quex
fuente