Debe escribir un programa o una función en cualquier idioma que genere este patrón:
~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~
|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~||
|||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~||||
|||||~|||||||||||||||||||||||||||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||||||||||||||||||||||||||~||||||
|||||||~|||||||||||||||||||||||||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||||||||||||||||||||||||~||||||||
|||||||||~|||||||||||||||||||||||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||~|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~|~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|||~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~|||||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||||||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~|||||||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||||||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~|||||||||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||||||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
La salida se compone de 20 líneas de 61 caracteres cada una.
Reglas
- Las lagunas estándar están prohibidas
- Puede haber una nueva línea final al final de la salida
- Es posible que no haya espacios en blanco al final en ninguna línea de la salida
Sin una nueva línea final, la suma de comprobación md5 de la salida es fde4e3b4606bf9f8c314131c93988e96
.
Con una nueva línea final, la suma de comprobación md5 de la salida es 1f0b43db4fec6594be202c8339024cb7
.
Este es el código de golf , por lo que gana el código más corto en bytes.
Respuestas:
C (gcc) ,
97828180 bytesGolfé 15 bytes después de aprender que
abs
está integrado en C, un byte adicional gracias a Rogem por señalar que las declaraciones de mis variables se pueden mover a la función, y otro byte gracias a ceilingcat por sugerir enx=31;--x+31
lugar dex=-31;++x<31
.Pruébalo en línea!
Esto sale con una nueva línea final. La función
f
hace la salida.Explicación
La salida se puede establecer como un gráfico.
(Los
+
s solo se muestran con fines explicativos y representan los ejes).La ecuación de este gráfico esy= abs ( 10 - abs ( x ) ) como se puede ver aquí en este enlace a un gráfico Desmos .
En función
f
, tenemos dos bucles for que iteran a través de cada coordenada en este gráfico.y
va de20
a1
y x va de-30
a30
.Para cada uno
x
, verificamos siabs(10-abs(x))
es igualy
al hacerloabs(10-abs(x))-y
en un ternario. Si son iguales, esto produce0
un valor falso en C, de lo contrario, se evaluará a algún valor positivo. Luego, en el ternarioabs(10-abs(x))-y?"|":"~"
, enprintf
consecuencia.Y después de cada línea, sacamos una nueva línea usando
puts("")
, y así es como la función sale con una nueva línea final.fuente
f(x,y)
lugar dex,y;f()
Carbón ,
1615 bytes-1 byte gracias a notjagan
Pruébalo en línea!
fuente
M
y moviéndolo implícitamente.R ,
7067 bytes3 bytes gracias a Giuseppe.
Pruébalo en línea!
fuente
""
a a1
por -1.Jalea ,
1816 bytesPruébalo en línea!
fuente
Python 2.7,
16313813513311391 bytesPruébalo en línea!
Edición 1: -25 bytes: cambié el algoritmo después de que me sentí un poco ambicioso. :PAG
Edición 2: -3 bytes: cortesía de Felipe Nardi Batista
Edición 3: -2 bytes: cortesía de shooqie
Edición 4: -20 bytes: cortesía de notjagan
Edición 5: -22 bytes: cortesía Leaky Nun
fuente
a,b,c='1','2','3'
es lo mismoa='1';b='2';c='3'
y lo mismo que colocar cada una en su propia línea, pero puedes ganar bytes desempacando cadenas comoa,b,c='123'
n<m
más corto quen-m<0
?/// , 231 bytes
Pruébalo en línea! O, ¡míralo interactivamente aquí !
fuente
WendyScript , 65 bytes (excluir nueva línea)
Pruébalo en línea!
Sigue el mismo principio que la respuesta C dada anteriormente. La primera línea es la
abs
función, la segunda línea ejecuta dos para bucles y salidas~
o se|
basa en el gráfico. El último""
se usa para generar una nueva línea después de cada bucle activadoy
.fuente
abs
función frente a la función principal.Vim, 59 bytes
Donde
^[
esta la<ESC>
llavefuente
:11<CR>
puede ser11G
Japt , 32 bytes
Pruébalo en línea! Asegúrese de expandir el cuadro de salida.
Explicación
Establecer
U
para|
repetir 20 veces.Establezca
V
el rango[0,9]
(AÆ
) asignado por:U
(implícito) con el carácter en el índiceX
(valor actual) establecido en (h
)~
.Conjunto
W
paraV
cada línea girada 10 (A
) char de la derecha.Crear matriz:,
V, W, U
yV
con cada línea invertida (w
). Esta es ahora la mitad izquierda de la forma, girada 90 ° a la izquierda.Aplane la matriz (
c
), pálidala (ê
), gírela 90 ° a la derecha (z
) y únala con nuevas líneas (·
).fuente
Pincel , 36 bytes
no competidor
Explicación
Esto me recuerda que necesito agregar una operación espejo.
fuente
Octava ,
1575754 bytesGolfed más abajo, gracias a las otras respuestas y los comentarios.
Simplemente lo enfoqué como la otra respuesta con la función abs (10-abs (x)) y luego usé los caracteres ASCII correctos para imprimir la imagen.
fuente
Pyth , 22 bytes
Pruébalo en línea!
fuente
V , 30 bytes
Pruébalo en línea!
fuente
Jalea , 18 bytes
Pruébalo en línea!
fuente
Chicle , 90 bytes
Pruébalo en línea!
fuente
MathGolf , 22 bytes
Pruébalo en línea!
Explicación
Probablemente sea posible jugar golf a 2-3 bytes de esto, veré qué puedo hacer.
fuente
C (gcc) , 75 bytes
Pruébalo en línea!
Totalmente cambiado de la respuesta del curandero de las vacas
fuente
Positron , 165 bytes
Pruébalo en línea!
Creo que Positron tiene demasiados errores. Debería actualizarlo a TIO porque
++
realmente funcionará.fuente
Mathematica,
7875 bytesexcepto que
\n
se reemplaza por una nueva línea real. Pruébalo en línea! (Hay espacios adicionales al comienzo de las líneas en matemáticas por alguna razón, pero funciona bien en Mathematica ).Se me ocurrió una presentación propia, pero luego Kritixi Lithos agregó una explicación de ellos y fue bastante similar a la mía, pero usando una fórmula ligeramente más inteligente, así que ahora esto es solo un puerto de esa respuesta. (¡Ve y lee ese y vótalo!)
fuente
Chicle , 93 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 87 bytes
fuente
Lua, 193 bytes
Tenga en cuenta que Lua no puede imprimir algo sin crear una nueva línea. Por esta razón, tengo que romper una de las reglas.
Mínimamente minimizado en gran medida:
Algunos cambios se realizaron durante la minificación, todo lo cual hace que el programa sea menos extensible pero más pequeño.
Intentalo: https://tio.run/##PY7LCoMwEEX3@YqQVVJTcWwRCp0vKV1oNa1QJ0UjGPr49TRq6eoO91wOcx/LEDp8vs1IF9da4lc5aa9aI6djkSt3a4h1pynxmwLOKD5iJog7sD2Pmf9yD@u0QrKOV6yhmkVTAtonUla8pHoLKm5BqZmtHHSmTCw9ZhoOvLZsQCHMogRdwNoMaSr/L9hevMSiePQtOTnMdwhf
No estoy seguro de si alguien ha hecho esto antes, pero intenté minificar cargando el programa como una cadena y usando gsub (buscar / reemplazar). Desafortunadamente, hizo que el programa fuera más grande. Sin embargo, si este programa fuera lo suficientemente grande, produciría menos bytes.
Debido a su relativa cercanía con el resultado real (240 bytes, solo 41 más), pensé que lo publicaría. Si este programa tuviera más de 350 bytes, probablemente habría habido una reducción.
fuente
Java 8, 113 bytes
Tengo la sensación de que los cheques (
j==i|j+i==60|i>9&(j-i==20|j+i==40)
definitivamente pueden jugarse de alguna manera combinando múltiples cheques en uno.Explicación:
Pruébalo aquí
fuente
Perl 5 , 79 bytes
Pruébalo en línea!
fuente
Tcl , 104 bytes
Pruébalo en línea!
Tcl , 105 bytes
Pruébalo en línea!
Tcl , 109 bytes
Pruébalo en línea!
Tcl,
143 133 123110Todavía no me gusta mucho, pero lo evolucionaré después:
manifestación
fuente
05AB1E ,
2019 bytesPruébalo en línea.
Explicación:
20Ýû31∍û
genera la lista:fuente