Em qualquer linguagem de programação, crie um programa que receba entrada e anime o texto que está sendo digitado no teclado.
O atraso entre cada caractere deve variar para simular a digitação verdadeira em um teclado. O atraso será de 0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...
segundos, até que o último caractere seja impresso. A saída final deve ser deixada na tela.
Você deve substituir a linha de texto atual, para que o texto não seja impresso em novas linhas.
Exemplo, a entrada "Olá, PPCG! Adeus Terra!" deve resultar na seguinte animação (observe que a taxa de amostragem do criador de gifs foi baixa, portanto o resultado verdadeiro é um pouco diferente):
Como se trata de código de golfe, a menor quantidade de bytes ganha.
Respostas:
C
1089389787380 bytesVersão não destruída:
@Kritixi Lithos @Metoniem Obrigado pela sua contribuição! salvou alguns bytes.
De alguma forma, apenas
int i
me deu um erro de segmentação na execução, então eu o inicializei com 0.fonte
i%3
o atraso for 5. #100000
com1e5
a barbear 3 bytes1e5
não funciona no meu dispositivoGelatina , 13 bytes
Este é um link / função monádica. Devido à saída implícita, ele não funciona como um programa completo.
Verificação
Como funciona
fonte
MATLAB, 74 bytes
Explicação:
Eu usei um bom tempo para tornar a
fprintf
versão mais curta do quedisp()
comclc
. A descoberta foi quando descobri / lembrei quepause
pode usar um vetor como argumento, caso em que apenas escolherá o primeiro valor. Isso torna possível deixar de fora um balcão.A mais curta que tem usando
disp
era de 81 bytes:fonte
printf
vez defprintf
? Ele funciona em octave-online.net (mas é Octave e não Matlab)JavaScript (ES6), 67 bytes
fonte
Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
V ,
201918 bytes1 byte salvo graças a @DJMcMayhem
economizou 1 byte removendo
ò
no finalTerrivelmente semolfo, eu sei, é exatamente esse
u
ndo estrito que me impede de usar loops aninhados.Explicação
O cursor inicia no início do buffer, que é o primeiro caractere da entrada.
Gif em breve ...
fonte
gÓ
sem uma contagem padrão de 500 ms, para que você possa salvar um byte lá. Além disso, lembre-se de que você não precisa do segundoò
!u
ndo, você pode apenasp
comer? Incerto se isso ajuda em tudo emboraò
porque, caso contrário, o programa será encerrado antecipadamente devido à nova linha implícita no final, causando um erro de quebra.p
aste, mas infelizmente ele se move o cursor para o fim da linha e voltar eu precisaria de algo como``
o que só iria aumentar ainda mais a minha bytecountMATL , 16 bytes
Experimente no MATL Online!
Explicação
fonte
Noodel , 18 bytes
Tente:)
Como funciona
Snippet de código de 19 bytes que faz loop infinitamente.
fonte
APL, 23 bytes
Explicação:
fonte
C #,
131bytesNão há muito a explicar. Ele pega uma string (envolvida em "") como argumento e imprime cada caractere usando o padrão de atraso correto. Após a animação, ele sai com um
OutOfRangeException
porque o loop não para depois de repetir todos os caracteres. Como é um loop infinito, isso também significa que eu posso usar emint Main
vez devoid Main
;-)Golfe
Ungolfed
Editar% s
i
dentro doSleep()
método em vez de nofor
loop. (Obrigado Maliafo )fonte
Sleep(i++ [...])
salvar um byte extra no loop for?SmileBASIC, 61 bytes
Eu acho que o cálculo do atraso poderia ser muito menor.
fonte
Clojure, 81 bytes
Loops sobre a sequência de entrada compactada com uma lista infinita de
[100 100 500]
.fonte
Bash (+ utilitários), 32 bytes
Golfe
Demo
fonte
Python 3 ,
8375 bytesExperimente online!
fonte
,flush=1
.Powershell,
666563 Bytes-1 removeu o espaço em branco desnecessário após
-m
-2 graças ao AdmBorkBork - usado
1,1,5
e*
resultado final ao100
invés de usar100,100,500
recebe
$args
como uma matriz de caracteres, passa pelo modo de suspensão conforme especificado,Write-Host
com o-N
argumento oNewline é usado para gravar os caracteres na mesma linha.Melhorias?
[0..99]
vez de[char[]]
salvar 1 byte, mas não funcionará em strings com mais de 100 caracteres.100,500
e[(++$i%3)-gt1]
reduza de alguma forma.Write-Host
não consegue encontrar nenhuma maneira de fazer com que os dois últimos funcionem e o primeiro não é válido por nenhuma regra específica.
fonte
sleep -m((1,1,5)[++$i%3]*100)
Perl, 63 bytes
fonte
Python 3, 88 bytes
fonte
Rebol, 65 bytes
Ungolfed:
fonte
Bash + coreutils, 57 bytes
fonte
Java 7,
151149 bytes-2 bytes graças a @KritixiLithos por algo que sempre esqueço ..
Explicação:
Uso:
fonte
a[0].split("")
?split
na minha resposta Processing ...Processando,
133131 bytesEu tentei fazer
args[0]
e agrupar o argumento em""
, mas ele não funciona por algum motivo.Enfim ... esta é a primeira vez que escrevi um programa de processamento que aceita argumentos. Ao contrário do Java, você não precisa declarar os argumentos usando
String[]args
, mas a variávelargs
será inicializada automaticamente nos argumentos.Coloque-o em um arquivo chamado
sketch_name.pde
em uma pasta chamadasketch_name
(sim, mesmo nome para pasta e esboço). Chame assim:fonte