Haga una barra de carga de estilo Windows siguiendo las siguientes instrucciones.
(tenga en cuenta que esto es diferente a Cargando ... para siempre )
Su salida debe comenzar por [.... ]
.
Cada tic, debe esperar 100 ms, luego mover cada punto un carácter a la derecha. Si el punto está en el décimo carácter, muévalo al primero. Tenga en cuenta que debe borrar la pantalla antes de volver a mostrar. La salida se ordena de la siguiente manera:
[.... ]
[ .... ]
[ .... ]
[ .... ]
[ .... ]
[ .... ]
[ ....]
[. ...]
[.. ..]
[... .]
.. Luego se repite para siempre.
Reglas
- Este es el código de golf , por lo que gana la respuesta más corta
. Dudo que incluso acepte una respuesta ganadora aunque - Proporcione un archivo gif de la barra de carga en acción si es posible.
code-golf
ascii-art
kolmogorov-complexity
animation
Matthew Roh
fuente
fuente
\r
permite el uso de , en lugar de borrar literalmente la pantalla?Respuestas:
V,
171615 bytes<esc>
es0x1b
.Y el hexdump:
Explicación
fuente
i.... <esc>qq:sl 100m<CR>$X|P@qq@q
debería funcionar (<esc>
obviamente es la tecla de escape y<CR>
es un salto de línea) (hay 6 espacios después de los 4 puntos)gó
función es útil. Buena respuesta por cierto :)CSS / HTML,
202190186 + 45 =247235231 bytesEditar: Guardado
1214 bytes gracias a @Luke.fuente
b
?ch
al final;0
No necesita una unidad.<x>
a<span>
(y en el CSS también: sex
conviertespan
y sex>x
conviertespan>*
)? Eso ahorradisplay:inline-block;
, pero cuesta solo 15 bytes. Entonces se guardan un total de 6B.position:absolute;
.PowerShell,
6766 bytes-1 mediante el uso de constructor acortado gracias a Beatcracker
reemplaza la cadena con una copia de la cadena donde se coloca el último carácter delante de los caracteres restantes, borra la pantalla, la imprime y luego duerme durante 100 ms.
ahorró muchos bytes usando el constructor del bucle for en lugar de envolver la lógica dentro de la cadena.
fuente
for
truco del bucle y hacerme volver a leer about_Join .$s='.'*4+' '*6
.[.... ]
. You can fix it without penalty:for($s='.'*4+' '*6){cls;"[$s]";$s=-join($s[,9+0..8]);sleep -m 100}
Python 3,
99938583+2 (-u flag) bytes-12 bytes thanks to ovs
-2 bytes thanks to totallyhuman
Try it online!
fuente
flush=True
? It works without for meprint(end='\r[%s]'%s,flush=1)
-u
command line flag. Related SO questions[9]+s[:9]
.Windows batch ,
201181 bytesTurns out using the old-school method actually saves bytes!
Note:
Please note that my GIF recorder skipped a few frames, making the loading bar jumps
:(
fuente
@echo off
and replacing the do withdo @(echo %%~p&timeout/t 0 >nul&cls)
will also work and should save 11 characters (200 bytes on my computer)Mathematica,
6777 Bytes+10 Bytes as I forgot the square brackets.
fuente
Animate
? :|C (gcc),
126125124123122121119118117114115 bytesThis one uses a bitmask to keep track of where the dots are.
I had to add another byte as I was only outputting 5 spaces before.
Try it online!
fuente
Javascript (ES6), 86 bytes
fuente
with
. Always +1 forwith
!JavaScript (ES6) + HTML,
1048583 bytesinput
instead of apre
.Try It
Requires a closing
>
on theinput
tag in order to function in a Snippet.fuente
[]
s?<input>
instead of<pre>
and thenvalue
instead ofinnerText
?s='.... ';setInterval(f=>{o.value='[${s=s[9]+s.slice(0,9)}]'},100);<input id=o
, maybe someone can improve it (replace quotation mark with `)Noodel,
16151413 bytes[ CỤ‘Ṁ~ððÐ]ʠḷẸḍt]ʠ[Ð.×4¤×6⁺ḷẸḍt]ʠ⁶¤⁴.ȧ[ėÐḷẸḍtTry it:)
How it works
Update
Try it:)
Don’t know why this took me a while to think of. Anyways, this places it at 13 bytes.
fuente
PHP, 67 bytes
no comment
fuente
C #,
162157 byteso como programa completo para 177 bytes
fuente
for(string o="[.... ]";;)
se puede jugar al golfvar o="[.... ]";for(;;)
. O puede que nos de un puerto de mi Java 7 respuesta al golf del total algo más de:()=>{var o=".... "for(;;){o=(o+o).Substring(9,10);System.Console.Write("["+o+"]\n");System.Threading.Thread.Sleep(100);System.Console.Clear();}};
$"[{o}]\n"
System.Console.Write(o)
conSystem.Console.Write(o+"\r")
puede quitar elSystem.Console.Clear();
Puro golpe, 68
fuente
MATL , 24 bytes
¡Pruébalo en MATL Online! O vea un gif del compilador fuera de línea:
Explicación
fuente
Jalea ,
2827 bytes¿Cómo?
fuente
C (gcc),
202198196189969988867977757473 bytesGuardado
78 bytes gracias a Digital Trauma .O, si su sistema es
stdout
no necesita ser vaciado después de cada escritura sin una nueva línea:C (gcc), 70 bytes
Cómo funciona
usleep(
duerme para el próximo valor de retorno en microsegundos.dprintf(2,
imprime en el descriptor de archivo 2, ostderr
. Esto es necesario porque mientrasstdout
está almacenado en línea (lo que significa que la salida no se mostrará hasta que imprima una nueva línea),stderr
está almacenada en caracteres (toda la salida se muestra inmediatamente)."\r
imprime un retorno de carro (borra la línea actual).[%-10.10s]"
es elprintf
especificador de formato para una cadena con una longitud exacta de 10 (sin importar qué cadena siempre que la salida sea siempre una cadena con una longitud de 10), rellenada con espacios a la derecha si es necesario. Esto se incluirá entre paréntesis.".... ...."
es la barra de carga+i%10
compensa la barra de carga por el módulo de índice actual 10. Por ejemplo, sii == 3
,i % 10
es igual a 3. La compensación de la barra de carga por 3 hace que sea igual a". ...."
.printf
especificador de formato, se limita a una longitud de 10 si es necesario y agrega espacios al final si es necesario. Por lo tanto, la barra de carga siempre estará entre[.... ]
y[. ...]
.fuente
i;f(){for(;;i=++i%10)usleep(7500*dprintf(2,"\r[%-10.10s]",".... ...."-i+10));}
Deberia trabajar.f(i){usleep(dprintf(2,"\r[%-10.10s]",".... ...."+i%10)<<13);f(i+9);}
Java 7,
139124bytes\r
agradecimiento a @ Phoenix .El retorno del carro
\r
restablece el 'cursor' al comienzo de la línea, que luego se puede sobrescribir. Desafortunadamente, los compiladores en línea ni el IDE de Eclipse no admiten esto, por lo que agregué un gif al final de esta respuesta para mostrarlo desde el símbolo del sistema de Windows.Pruébalo aquí(Ligeramente modificado para que no tenga que esperar el tiempo de espera antes de ver el resultado. Además, el TIO no admite retornos de carro, por lo que cada línea se imprime sin sobrescribir la línea anterior).
Explicación:
Salida gif:
fuente
println
conprint
y dar salida a un retorno de carro. Puede que no funcione en la terminal de su IDE, pero funcionaría en cualquier otra cuerdo.\r\n
? CómoSystem.out.print(someString+"\r\n);
borra la consola ... Es lo mismo que usarSystem.out.println(someString);
... Simplemente va a la siguiente línea, pero no elimina ninguna línea anterior impresa ...: S\r
, sin\n
. Eso restablece el "cursor" al comienzo de la línea, por lo que imprimir cualquier cosa sobrescribirá esa línea.Python 2 ,
8178 bytes-1 byte (notando que perdí el uso de
%s
cuando Rod presentó una versión de Python 3 casi idéntica al mismo tiempo)-2 bytes (usando la idea totalmente humana - reemplazar
s[-1]+s[:-1]
cons[9]+s[:9]
)fuente
\r
sobrescribe la línea y la,
hace imprimir una tupla en lugar de una cadena; lo vi hace un tiempo en algún lugar y también lo he usado antes.sys.stdout.flush()
)Ir ,
150145132129124 bytes-5 bytes gracias a sudee.
Siento que no veo lo suficiente Vaya aquí ... Pero mi respuesta está superando a C así que ... por favor, ¿halp golf?
Pruébalo en línea!
fuente
100000000
a10^8
ahorrar 5 bytes.10**8
que también da un error.1e8
.VBA de 32 bits,
159157143141134 BytesVBA no tiene una función integrada que permita esperar períodos de tiempo inferiores a un segundo, por lo que debemos declarar una función desde
kernel32.dll
Declaración de declaración de 32 bits (41 bytes)
Declaración de declaración de 64 bits (49 bytes)
Además, debemos incluir un
DoEvents
bandera para evitar que el bucle infinito haga que Excel parezca no responder. La función final es entonces una subrutina que no lleva entradas y salidas a la ventana inmediata de VBE.Función de ventana inmediata, 93 bytes
Función de ventana inmediata anónima de VBE que no lleva entradas y salidas al rango
A1
de ActiveSheetVersión antigua, 109 bytes
Función de ventana inmediata que no lleva entradas y salidas a la ventana inmediata de VBE.
No golfted y formateado
-2 bytes para eliminar espacios en blanco
-30 bytes para contar correctamente
-14 Bytes para convertir a la función de ventana inmediata
Salida
El siguiente gif usa la versión de subrutina completa porque era demasiado vago para volver a grabar esto con la función de ventana inmediata.
fuente
a
en la parte superior de la salida?a
como se indica arriba; esto es funcionalmente equivalente al más detalladocall a()
.05AB1E , 23 bytes
Pruébalo en línea!
Explicación
fuente
Lote,
9998 bytes¡Guardado 1 byte gracias a SteveFest!
(Podría eliminarlo
\r
del código, pero en el espíritu del golf por lotes, no lo haré).Hay cuatro espacios después de la primera línea.
La lógica principal es modificar la cadena.
%s:~-1%
es el último carácter de%s%
y%s:~0,-1%
es todo menos el último carácter de%s%
. Por lo tanto, estamos moviendo el último carácter al frente de la cadena, que gira la cadena.fuente
0
se puede eliminar la subcadena variablecmder
. Buen trabajo.Ruby,
5756 bytesMuy influenciado por otras respuestas aquí.
Salvó un byte gracias a @manatwork. También, aparentemente, tengo problemas para contar caracteres: uso ST3 y aparentemente incluirá nuevas líneas en el recuento de caracteres en la línea si no está atento.
fuente
s
?s
al comienzo del programa como 4.
sy algunos espacioss[0..8]
→s.chop
Perl, 69 bytes
-3 bytes gracias a @Dom Hastings .
Esa
select undef,undef,undef,.1
es la forma más corta de dormir menos de 1 segundo en Perl, y requiere muchos bytes ...Un poco más largo (79 bytes), hay:
fuente
!print
pero necesitas parens para que termine en la misma longitud: /Golpetazo,
939096 bytesver aquí
no se pudo anidar {} en sintaxis
fuente
Groovy, 72 bytes
Explicación
fuente
\r
para regresar el cursor al inicio de la línea. Parece que al menos varias respuestas están haciendo esto. Desde allí, puede eliminar el * 20, ahorrando 3 bytes.Haskell (Windows), 159 bytes
Explicación
La pureza de Haskell hizo que la generación del patrón de puntos de ciclismo fuera algo compleja. Terminé creando una comprensión de lista anidada que generó una lista infinita de cadenas en el orden en que deberían salir, luego volví a agregar las operaciones de E / S apropiadas.
fuente
Ruby, 61 bytes
Si la especificación fuera que los puntos se desplazaran hacia la izquierda en lugar de hacia la derecha, ahorraría 1 byte porque
rotate!
sin argumentos desplaza la matriz una vez hacia la izquierda.fuente
GNU sed (con extensión exec), 64
La puntuación incluye +1 para la
-r
bandera.fuente
c, 100
fuente
stderr
usardprintf
y no solo usarprintf
?stderr
está almacenado en búfer de caracteres, mientras questdout
está almacenado en línea. Como no quiero imprimir ninguna\n
, entoncesprintf()
tendría que hacerlo explícitamentefflush(stdout)
, así como#include <stdio.h>
#include <stdio.h>
limpiar STDOUT.fflush(0)
Enjuaga todos los tampones.main
af
, eso cuenta.