Dans n'importe quel langage de programmation, créez un programme qui prend en entrée et anime le texte tapé sur un clavier.
Le délai entre chaque caractère doit être variable pour simuler la véritable frappe sur un clavier. Le délai est de 0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...
quelques secondes, jusqu'à ce que le dernier caractère soit imprimé. Le résultat final doit être laissé sur l'écran.
Vous devez remplacer la ligne de texte actuelle, vous ne pouvez pas faire imprimer le texte sur de nouvelles lignes.
Exemple, l'entrée "Bonjour, PPCG! Au revoir la Terre!" devrait entraîner l'animation suivante (notez que le taux d'échantillonnage du générateur de gif était faible, donc le vrai résultat est légèrement différent):
Puisqu'il s'agit de golf de code, le plus petit nombre d'octets gagne.
Réponses:
C
1089389787380 octetsVersion non golfée:
@Kritixi Lithos @Metoniem Merci pour votre contribution! enregistré quelques octets.
D'une certaine manière, je viens de
int i
me donner une erreur de segmentation lors de l'exécution, donc je l'ai initialisée avec 0.la source
i%3
le retard doit être de 5.100000
par1e5
pour raser 3 octets1e5
ne fonctionne pas sur mon appareilGelée , 13 octets
Il s'agit d'un lien / fonction monadique. En raison de la sortie implicite, il ne fonctionne pas comme un programme complet.
Vérification
Comment ça fonctionne
la source
MATLAB, 74 octets
Explication:
J'ai utilisé un bon moment pour rendre la
fprintf
version plus courtedisp()
qu'avecclc
. La percée a été lorsque j'ai découvert / retenu que je pouvaispause
prendre un vecteur comme argument, auquel cas il choisirait simplement la première valeur. Cela permet de laisser de côté un comptoir.Le plus court que j'ai pu utiliser
disp
était de 81 octets:la source
printf
place defprintf
? Cela fonctionne sur octave-online.net (mais c'est Octave et non Matlab)JavaScript (ES6), 67 octets
la source
Blocked form submission to '' because the form's frame is sandboxed and the 'allow-forms' permission is not set.
V ,
201918 octets1 octet enregistré grâce à @DJMcMayhem
enregistré 1 octet en supprimant
ò
à la finTerriblement impuissant, je sais, c'est juste que strict
u
ndo m'empêche d'utiliser des boucles imbriquées.Explication
Le curseur démarre au début du tampon, qui est le premier caractère de l'entrée.
Gif à venir bientôt ...
la source
gÓ
sans décompte par défaut à 500 ms, vous pouvez donc y enregistrer un octet. N'oubliez pas non plus que vous n'avez pas besoin de la secondeò
!u
ndo pouvez-vous simplementp
aste?ò
parce que sinon le programme se termine tôt en raison de la nouvelle ligne implicite à la fin provoquant une erreur de rupture.p
aste, mais hélas, cela déplace le curseur à la fin de la ligne et pour revenir en arrière, j'aurais besoin de quelque chose comme``
cela qui ne ferait qu'augmenter encore mon bytecountMATL , 16 octets
Essayez-le sur MATL Online!
Explication
la source
Noodel , 18 octets
Essayez-le :)
Comment ça fonctionne
Extrait de code de 19 octets qui boucle sans fin.
la source
APL, 23 octets
Explication:
la source
C #,
131octetsPas grand chose à expliquer. Il prend juste une chaîne (entourée de "") comme argument et imprime chaque caractère en utilisant le motif de retard correct. Après l'animation, elle se termine par un
OutOfRangeException
car la boucle ne s'arrête pas après avoir bouclé sur tous les personnages. Puisqu'il s'agit d'une boucle infinie, cela signifie également que je peux utiliser à laint Main
place devoid Main
;-)Golfé
Non golfé
Modifications
i
intérieur de laSleep()
méthode plutôt que dans lafor
boucle. (Merci Maliafo )la source
Sleep(i++ [...])
pour enregistrer un octet supplémentaire dans la boucle for?SmileBASIC, 61 octets
Je pense que le calcul du retard pourrait être beaucoup plus court.
la source
Clojure, 81 octets
Boucles sur la chaîne d'entrée zippée avec une liste infinie de
[100 100 500]
.la source
Bash (+ utilitaires), 32 octets
Golfé
Démo
la source
Python 3 ,
8375 octetsEssayez-le en ligne!
la source
,flush=1
.Powershell,
666563 octets-1 espace blanc inutile supprimé après
-m
-2 grâce à AdmBorkBork - utilisé
1,1,5
et*
résultat final au100
lieu d'utiliser100,100,500
prend
$args
comme un tableau de caractères, passe en veille comme spécifié,Write-Host
avec l'-N
argument oNewline est utilisé pour écrire les caractères sur la même ligne.Des améliorations?
[0..99]
au lieu de[char[]]
pour enregistrer 1 octet, mais ne fonctionnera pas sur les chaînes de plus de 100 caractères.100,500
et[(++$i%3)-gt1]
mais le raccourcir en quelque sorte.Write-Host
ne trouve aucun moyen de faire fonctionner les deux derniers, et le premier n'est valide par aucune règle particulière.
la source
sleep -m((1,1,5)[++$i%3]*100)
Perl, 63 bytes
la source
Python 3, 88 Bytes
la source
Rebol, 65 bytes
Ungolfed:
la source
Bash + coreutils, 57 bytes
la source
Java 7,
151149 bytes-2 bytes thanks to @KritixiLithos for something I always forget..
Explanation:
Usage:
la source
a[0].split("")
instead?split
in my Processing answer...Processing,
133131 bytesI tried doing
args[0]
and wrapping the argument in""
instead, but it does not work for some reason.Anyways... this is the first time I've written a Processing program that takes arguments. Unlike Java, you don't need to declare the arguments using
String[]args
, but the variableargs
will automatically be initialised to the arguments.Put it in a file called
sketch_name.pde
under a folder calledsketch_name
(yes, same name for folder and sketch). Call it like:la source