Ce défi est un hommage au gagnant du prix du meilleur film aux Oscars 2017, La La Land Moonlight!
Votre défi est d'imprimer le texte
La La Landpause une seconde, puis change le texte pour afficher
Le texte original (La La Land) doit être barré . Pour ce faire, vous pouvez effacer l'écran, dessiner sur le texte d'origine ou utiliser toute autre solution astucieuse.La La Land auclair de lune
Ceci est un code-golf, donc les octets les plus bas gagnent. Les règles standard de code-golf s'appliquent.
code-golf
string
kolmogorov-complexity
animation
vikarjramun
la source
la source
La La La(nd)
motifRéponses:
Gelée , 31 octets
Testé avec xterm et
LANG=en_US
. Ne fonctionne pas sur TIO pour plusieurs raisons.Hexdump
Vérification
Contexte
Cette réponse utilise des caractères de contrôle et des séquences d'échappement ANSI .
0d
(<CR>
) est utilisé pour revenir au début du liner après l'impression de La La Land .9b 39 6d
(<CSI> 9 m
) est utilisé pour activer le texte barré avant la deuxième impression de La La Land .9b 6d
(<CSI> m
) est utilisé pour réinitialiser le premier plan et l'arrière-plan en mode par défaut, désactivant ainsi le barré avant l'impression de Moonlight .Comment ça fonctionne
la source
Vim, 37 octets
Une solution assez simple.
Voici une animation de son exécution:
la source
gs
dort pendant une seconde.HTML,
153148 octetsUtilisation de l'animation CSS. Testé sur Firefox et Chrome uniquement.
la source
@keyframes
déclarations en dernier et supprimer les deux accolades fermantes.}
manque un. Malheureusement, cela ne peut pas être fait.HTML + JavaScript, 18 + 59 = 77 octets
Malheureusement, il ne semble pas y avoir de moyen efficace de réutiliser
O.innerHTML
...la source
setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)
travailler?a
il n'y aurait pas modifierO.innerHTML
.Octave,
81 à66 octets15 octets sauvegardés grâce à @Stewie
Démo en ligne ici .
Alors que la démonstration montre deux tracés distincts, lorsqu'elle est exécutée dans la version de bureau de MATLAB, elle affiche le premier tracé, attend 1 seconde, puis ajoute la seconde chaîne au même tracé.
Comme Octave ne prend pas en charge le texte barré, j'ai plutôt choisi d'afficher le texte contenu dans un
axes
objet d'une figure et d'afficher un "barré" en l'affichant'--------'
au-dessus du texte initial (idée initiale de @Stewie). Auparavant, j'avais en fait tracé unline
objet pour passer à travers'La La Land'
la source
text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')
.'-'*8+
à la place des tirets?.
)Bash,
70, 69,66 octets-4 pts grâce à Riley
echo La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0m Moonlight"
Crédits à la réponse de Sylvain Pineau sur AskUbuntu pour le barré
la source
\r
dans le secondecho
au lieu declear
. En outre, vous n'avez pas besoin d'espace avant la secondeecho
.clear;
devrait aller en premier. Et vous avez un espace inutile dans; echo
.\e[A
, donc pasclear
besoin. Pour plus d'informations à ce sujet, voyez- moi .s="La La Land";echo $s;sleep 1;echo -e "\e[A\e[9m$s\e[0m Moonlight"
echo -n La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0mMoonlight"
QBasic, 61 octets
En mode graphique, tracez une ligne réelle dans le texte. Voici à quoi cela ressemble dans QB64 :
Le code devrait être assez explicite, mais voici une version non golfée:
la source
MATL, 46 octets
Puisque MATL ne prend pas en charge les codes de contrôle ou le formatage du texte, cette solution alterne simplement
'La La Land'
et'-----------'
aussi rapidement que possible pour simuler du texte barré.Explication
la source
Bash + pv , 50 octets
Cela s'appuie sur la réponse de Bash à DigitalTrauma .
♪
représente un retour chariot ( 0x0d ),›
un octet CSI ( 0x9b ).Hexdump
Vérification
Comment ça fonctionne
printf répète sa chaîne de format autant de fois que nécessaire pour épuiser ses autres arguments. Puisqu'il y a une occurrence de
%b
et deux arguments (9m\\0
etm\ Moonlight
), il produira le flux d'octets suivant.Cela fait ce qui suit.
\r
amène le curseur au début de la ligne.La La Land
est imprimé mot pour mot.\x9b9m
active le texte barré.\0
définit un marqueur de fin de ligne pourpv -0
.\rLa La Land
fait la même chose qu'avant.\x9bm
réinitialiser le premier plan et l'arrière-plan en mode par défaut, en désactivant la traversée.Moonlight
est imprimé mot pour mot.Enfin,
pv -0L1
imprime une ligne terminée par un zéro par seconde, introduisant le délai souhaité.la source
♪
vous a aidé à jouer au golf ou est-ce que vous vouliez spécifiquement l'utiliser avec La La Land? Je l'aime!♪
parfois stylisé n’est qu’une heureuse coïncidence.pv
au lieu desleep
comme tout le monde est belle.pv
est ce que j'ai tiré de la réponse Bash liée, je ne peux donc pas en prendre le crédit pour cela.HTML + JavaScript, 10 + 63 = 73 octets
la source
PHP (
867569 octets)Utilise le caractère U + 0336 UTF-8 pour le barré.
Edit: 17 octets enregistrés avec les suggestions @Titus commenté
la source
sleep
renvoie toujours 0; de sorte que vous pouvez simplement fairesleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"
(-3 octets).\r
au lieu de\033[10D
sauvegarder 6 octets et l'inclure dans la dernière chaîne en épargne encore 4.U+0336
pour le barré".La La Land<?=
au lieu de<?="La La Land",
sauver encore 3 octets.Pyth - 47 octets
Est-ce que la chose barrée maintenant.
la source
"
devant pour +1.<exmpty line>
? Je suggère des<pre>
balises.C
8786 octetsVersion non-golfée:
la source
char
et*
.f()
dans la version non-golfée, non?f()
.HTML + JavaScript, 100 octets
la source
GNU sed + sleep,
6358 octetsEdit: 5 octets enregistrés, basés sur les commentaires de Digital Trauma
Attendre entre deux déclarations d'impression ne peut pas être fait en utilisant sed seul, et en tant que tel, j'appelle
sleep 1
. Il est possible de faire un appel système depuis sed, en utilisant lae
commande, qui est une extension GNU.Pour créer un texte barré (ligne 3), une "combinaison de superposition de traits longs", U + 0336 , est ajoutée à chaque caractère. Après cela, je déplace le curseur d'une ligne vers le haut, remplaçant ainsi l'ancien texte lors de l'impression de quelque chose de nouveau, en utilisant les séquences dites d' échappement ANSI . Celles-ci sont interprétées par le terminal comme des commandes de formatage spéciales. Vous pouvez trouver plus d'informations à leur sujet ici .
Explication:
la source
\c
belle découverte! Pour ce qui est de l’unicode spécial, c’est la première fois que j’en entends parler, mais cela fonctionne. Lorsqu'il est imprimé par cette page, il est combiné avec les
séparateur de commande:
, ce qui est un peu étrange de le voir au début.Java 7,
207206171139 octetsJe triche un peu avec cette première réponse, parce que j'utilise unicode barré .
Explication:
Java 7 (avec AWT),
444429341 octets444 rayés sont toujours normaux 444;
Étant donné que la console Java ne comporte pas de balisage semblable à une frappe barrée, vous devez utiliser Java AWT. Et bien, si vous pensiez que la console Java était déjà prolixe, c'est encore pire (je sais, je sais, la plupart d'entre vous ne pouvait même pas imaginer que Java 7 soit pire ...)
Explication:
Sortie gif:
la source
String[] a
et utiliser1e3
au lieu de1000
1e3
, c'est un double, etThread.sleep
attend un long.1000
est plus court que(long)1e3
. :)Swing
, non, n'estSpring
-ce pas? J'ai presque fait une crise cardiaque! Printemps dans un codegolf ... En outre, pour économiser des octets, vous pouvez utiliser AWT au lieu de Swing.void m(){new Frame(){public void paint(Graphics g){g.drawString("La La Land",99,99);try{Thread.sleep(1000);}catch(Exception e){}AttributedString s=new AttributedString("La La Land Moonlight");s.addAttribute(java.awt.font.TextAttribute.STRIKETHROUGH,1>0,0,10);g.drawString(s.getIterator(),99,99);}}.show();}
Python 3, 90 octets
Utilisez Unicode (U + 0336) pour barrer, car le terminal macOS ne prend pas en charge cette
\e[9m
commande.la source
Arduino,
332331 octetsPas en compétition, juste pour le plaisir.
Nomenclature:
la source
#include
Python3, 99 octets
la source
l = 'La La Land
ne pouvez pas éviter le+s
pour -2 caractères? .Bash + pv, 62
la source
SmileBASIC, 45 octets
Un octet en moins grâce au tour de magie de 12Me21.
Autant que je sache, SB n’ayant pas de caractères barrés, j’ai donc utilisé
GLINE
. Cela suppose évidemment un affichage clair, à utiliserACLS
si vous en avez besoin.la source
AHK, 102 octets
J'ai triché un peu pour obtenir du texte barré en utilisant le caractère unicode combinant superposition de traits longs . Cela peut créer une apparence étrange en fonction de votre configuration. Bloc-notes donne une bonne apparence.
AutoHotkey n'est clairement pas la langue la plus efficace pour cela, mais c'était un défi amusant. Faites attention à l'endroit où vous l'exécutez car il ne crée pas son propre affichage et efface tout le texte de la fenêtre active.
la source
Rapide, 392 octets
Swift + UIKit n'est vraiment pas idéal pour jouer au golf! Exécutez-le dans un terrain de jeu XCode et le résultat sera affiché dans le volet de visualisation.
la source
l.textColor=UIColor.red
nécessaire?Gelée , 41 octets
Ne fonctionne pas sur l'interprète en ligne.
la source
Python (137 octets)
la source
import
. Je suggérerais également de sauvegarder "La La Land" en tant que variable.TI-BASIC,
5753 octetsNotez que cela utilise la capacité TI-84 + CE avec le dernier système d'exploitation pour faire une pause d'une seconde. Cela renverra une erreur synthax sur la TI-84 +. Pour tester, vous pouvez omettre la pause d'une seconde en supprimant cette ligne. Rappelez-vous également d'appuyer sur Zoom, 6 en premier, afin que vous soyez sur les paramètres de fenêtre par défaut, sinon la commande de ligne ne fonctionnera pas.
la source
SpecBAS - 58 octets
Chaque caractère est de 8x8 pixels, donc trace une ligne de 0,4 à la position relative 80,4 (80 ajoutés à la première coordonnée et 0 à la seconde pour rester sur la même ligne).
la source
OIL , 76 octets
Remplacez le
⎋
par un caractère d'échappement et↩︎
par un retour chariot. OIL ne dispose d'aucun type de commande de veille. Je l'émule donc à l'aide d'une boucle qui compte à rebours de 89999 à 1. Cela prend environ une seconde sur mon ordinateur, mais ce n'est peut-être pas le cas sur le vôtre.Les 3 premières lignes sont ignorées par l'interprète, il imprime ensuite (
4
) la deuxième ligne (ligne 1; "La La Land"). La structure suivante est la boucle qui décrémente le grand nombre à la fin jusqu'à ce qu'elle soit égale à 1. En fin de compte, je viens d'imprimer les 3 premières lignes.la source
PHP, pas en compétition (64 octets)
utilise UTF-8:
--
signifieU+0336
- mais je suis à peu près certain que cela ne fonctionne pas seul.Si ce n'est pas le cas, essayez
~"1I"
ou~I1
au lieu de--
(+3 ou +1 octets).Pas le temps de le stocker dans un fichier ou de savoir comment régler ma console sur UTF-8; Je n'ai donc pu tester ni l'un ni l'autre. mais quiconque peut: s'il vous plaît laissez-moi savoir si c'est complet BS ou pas.
la source
Powershell, 63 octets
Fonctionne uniquement dans PowerShell ISE. Non compétitif, car le barré est décalé d'un caractère et je ne peux pas le réparer.
la source