Problema
Recrea la interfaz de usuario de un programa torrent
Sin entrada, salida lo siguiente:
+----------+----------+----------+
|a.exe |##########|seeding |
+----------+----------+----------+
|b.exe 10% |# |leeching |
+----------+----------+----------+
|c.exe |##########|seeding |
+----------+----------+----------+
|d.exe 20% |## |leeching |
+----------+----------+----------+
|e.exe |##########|seeding |
+----------+----------+----------+
|f.exe 30% |### |leeching |
+----------+----------+----------+
|g.exe |##########|seeding |
+----------+----------+----------+
|h.exe 40% |#### |leeching |
+----------+----------+----------+
|i.exe |##########|seeding |
+----------+----------+----------+
|j.exe 50% |##### |leeching |
+----------+----------+----------+
|k.exe |##########|seeding |
+----------+----------+----------+
|l.exe 60% |###### |leeching |
+----------+----------+----------+
|m.exe |##########|seeding |
+----------+----------+----------+
|n.exe 70% |####### |leeching |
+----------+----------+----------+
|o.exe |##########|seeding |
+----------+----------+----------+
|p.exe 80% |######## |leeching |
+----------+----------+----------+
|q.exe |##########|seeding |
+----------+----------+----------+
|r.exe 90% |######### |leeching |
+----------+----------+----------+
|s.exe |##########|seeding |
+----------+----------+----------+
|t.exe |##########|seeding |
+----------+----------+----------+
|u.exe |##########|seeding |
+----------+----------+----------+
|v.exe |##########|seeding |
+----------+----------+----------+
|w.exe |##########|seeding |
+----------+----------+----------+
|x.exe |##########|seeding |
+----------+----------+----------+
|y.exe |##########|seeding |
+----------+----------+----------+
|z.exe |##########|seeding |
+----------+----------+----------+
El progreso de los programas son:
b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%
cantidad de #
's para programas de sanguijuelas esprogress/10
el resto son todos seeding
con barras de progreso completas.
Reglas
- Nuevas líneas iniciales y finales permitidas.
- Se permiten espacios iniciales y finales siempre que no cambie la forma de salida.
- stdout y funciones para salida permitidas.
- El código más corto en bytes gana
code-golf
string
ascii-art
kolmogorov-complexity
LiefdeWen
fuente
fuente
.exe
desde torrents no es lo más brillante, ¿eh?f.exe
puedo encontrar una copia de este en ningún otro lado.f.exe
viene conf_readme.txt
eso dice, "ejecutar como administrador". Parece legitimo.Respuestas:
Carbón,
988583 bytesPensé que copiar una plantilla me ahorraría mucho código, pero todo parece sumar de alguna manera, aunque logré guardar 13 bytes usando un solo bucle para arreglar las 9 filas sanguijuelas. Explicación:
(Nota al margen: parece que descubrí un error en el carbón;
|
es un personaje ASCII, pero también se cuenta como una flechaMultiprint
, por lo que no puedeMultiprint
hacerlo).fuente
Perl 5 , 130 bytes
Pruébalo en línea!
Espero que haya algunos bytes que se pueden jugar al golf, pero me he quedado sin inspiración.
Explicaciones cortas:
$e
contiene la línea de separación (+----------+----------+----------+
); su construcción es sencilla (("+"."-"x10)x3 ."+\n"
).Luego, paso sobre los caracteres de
a
az
:Cada vez, imprimir
"|$_.exe%4s |%-10s|%-9s |\n$e
; Este es un estándarprintf
con marcadores de posición para cadenas (%s
) y cadenas con relleno izquierdo (%-9s
).si
$|--&&$@++<9
es verdadero ($|
es una variable especial que contiene 0 o 1, y decrementarlo alterna su valor), entonces el porcentaje no es 100%, y los tres valores en la impresión son"$@0%","#"x$@,leeching
(en$@0%
realidad es solo$@ . "0" . "%"
, recuerde que$@
se incrementó antes) , de lo contrario, los tres valores son"","#"x10,seeding
).fuente
Python 2 ,
182177 bytesGracias a @officialaimm por eliminar 5 bytes al cambiar el formato de la condición.
Pruébalo en línea!
fuente
SOGL V0.12 ,
908988 bytesPruébalo aquí!
Explicación:
fuente
Javascript,
232230228226 bytesManifestación
Mostrar fragmento de código
fuente
s
yp
a los parámetros de función predeterminados, eliminando la necesidad de()
s alrededor del cuerpo de la función: Fiddle${x?'leeching ':'seeding '}|
a lo siguiente${x?'leeching':'seeding '} |
:?PHP , 179 bytes
sin entrada
Pruébalo en línea!
PHP , 176 bytes
con entrada
Pruébalo en línea!
fuente
++
de++$x&1
(-2), utilizar$y=++$x%4|$z>9?"":++$z."0%"
como segundoprintf
parámetro (-9) e insertar$z
antes:10
(+2)Python 3 , 255 bytes
Estoy seguro de que esto se puede jugar, actualizando pronto:
Pruébalo en línea!
fuente
leeching |
yseeding |
, ¿no puedes cambiarlo aleeching
yseeding
+" |"
?//2*10
es justo*5
y10-(z-96)//2
es justo58-z//2
.Rubí , 141 bytes
Pruébalo en línea!
fuente
Java (OpenJDK 8) ,
244229228227226224222218217 bytesPruébalo en línea!
-2 bytes gracias a @KevinCruijssen!
fuente
leeching
yseeding
están alineados a la derecha..format
y0%
, +1! Por cierto, puede jugar un poco más a su respuesta comenzando cons=z
, en este caso:o->{String x="----------+",z="+"+x+x+x,s=z;for(int c=96,p;++c<123;)s+=s.format("%n|%c.exe %3s |%-10s|%-10s|%n"+z,c,(p=(c%2>0|c/2-48>10)?10:c/2-48)<10?p+"0%":"","##########".substring(0,p),p<10?"leeching":"seeding");return s;}
( 225 bytes )Python 2 ,
172170162 bytes-8 bytes gracias a Lynn
Pruébalo en línea!
fuente
Braingolf ,
673655 bytesPruébalo en línea!
Lo he dicho antes y lo diré de nuevo: Braingolf es malo en el arte ASCII.
Al menos esto es solo 1/3 de los bytes que se necesitarían para codificar realmente la salida
fuente
V , 107 bytes
Pruébalo en línea!
Hexdump:
fuente
Japt , 121 bytes
Pruébalo en línea!
fuente
Japt , 98 bytes
No funciona en la versión más reciente debido a un error que meta la pata
4î+
,q-p10
yq|
, pero funciona en comprometenf619c52
. ¡Pruébelo en línea!fuente
T-SQL, 238 bytes
Solución de procedimiento, formateada:
Todo en el bucle (hasta el SET) es parte de la misma instrucción PRINT, incluido un salto de línea dentro del primer literal de cadena.
Estoy trabajando en una solución basada en conjuntos (crear y llenar una tabla, luego seleccionarla), pero no estoy seguro de si será más pequeña o no.
fuente
Java 8,
271263262 bytesTodo este problema para nada ..>.>;)
( Respuesta más corta de Java por @ OliverGrégoire .)
Explicación:
Pruébalo aquí.
fuente
char
lugar de unint
en el bucle. Te permite no lanzarlo más tarde.t
se puede inicializar y reinicializar a cero y+=
luego. Todavía debería ser más corto.int
&(char)
&t=...;
vschar
&{t=1;t*=...;}
. A menos que me falte algo.TeX simple, 306 bytes
Ungolfed con algunas explicaciones:
fuente
05AB1E , 120 bytes
Pruébalo en línea!
Hay demasiado golf para hacer aquí, publicaré una explicación cuando esté por debajo de 90 bytes.
fuente
Stax ,
536864 bytesEjecutar y depurarlo
Desempaquetado y sin golf se ve así.
Tenga en cuenta que si utiliza el botón "Golf" para eliminar espacios en blanco y comentarios de la solución expandida, duplica incorrectamente
}
. Si elimina el carácter adicional, continúa funcionando correctamente.fuente
C (gcc) ,
217211 bytes-6 bytes gracias a ceilingcat
Pruébalo en línea!
fuente
/// , 264 bytes
Pruébalo en línea!
Funciona definiendo un montón de reemplazos y usándolos para reemplazar más personajes de los que son.
fuente
Mathematica, 274 bytes
fuente
Carbón ,
154 149 143 130103 bytesPruébalo en línea! (Enlace a la versión detallada).
fuente
\\r
: ¡ Pruébelo en línea! . Tenga en cuenta que he insertado operaciones ficticias porque no obtengo ningún separador.\r
truco, no lo sabía.Chicle , 150 bytes
Pruébalo en línea!
fuente
Perl6,
225219fuente
Lua, 380 bytes
Se utiliza
gsub
para crear los divisores de fila y las filas de inicialización.l
genera las filas sanguijuelas. Renombrandogsub
yrep
guarda más bytes.fuente
Jstx , 126 bytes
Pruébalo en línea!
Explicación
Estoy seguro de que esto puede ser significativamente más corto.
fuente
/// , 226 bytes
Pruébalo en línea!
Un enfoque un poco más sofisticado para definir reemplazos. ¡Pruébalo interactivamente aquí!
fuente
Pascal (FPC) ,
294286266263 bytesPruébalo en línea!
Entonces ... terminé con la nueva línea inicial y final: D
fuente
PowerShell ,
224210181174169160 bytesPruébalo en línea!
Ahora 64 bytes menos terrible
Algunos trucos geniales: combinar una gran cantidad de "$ (cosas)" para ahorrar en los padres. Queremos solo números impares, lo que hace que $ _% 2 = 1, por lo que no necesitamos un -eq para ello. Ahora usa la indexación de listas en lugar de un if-else para guardar 5 bytes. También se deshace de una `n por otro byte. No pude obtener "$ c`0%" para separar la var y el cero, por lo que la ruta actual era 1 byte más corta que pegar dos cadenas juntas. Ahora con formato -f.
fuente