Este desafio é uma homenagem ao vencedor de Melhor Filme no Oscar de 2017, La La Land Moonlight!
Seu desafio é imprimir o texto
La La Landpausar um segundo e alterar o texto para mostrar
O texto original (La La Land) deve ter um rasurado . Isso pode ser conseguido limpando a tela, desenhando sobre o texto original ou com outras soluções inteligentes.La La LandMoonlight
Este é um código-golfe, para que os bytes mais baixos ganhem. Aplicam-se regras padrão de código de golfe.
code-golf
string
kolmogorov-complexity
animation
vikarjramun
fonte
fonte
La La La(nd)
padrãoRespostas:
Gelatina , 31 bytes
Testado com xterm e
LANG=en_US
. Não funciona no TIO por vários motivos.Hexdump
Verificação
fundo
Esta resposta utiliza caracteres de controle e seqüências de escape ANSI .
0d
(<CR>
) é usado para retornar ao início do revestimento após a impressão de La La Land .9b 39 6d
(<CSI> 9 m
) é usado para ativar o texto de referência antes de imprimir La La Land pela segunda vez.9b 6d
(<CSI> m
) é usado para redefinir o primeiro plano e o segundo plano para o modo padrão, desativando assim o strike-through antes de imprimir o Moonlight .Como funciona
fonte
Vim, 37 bytes
Uma solução bastante direta.
Aqui está uma animação dele em execução:
fonte
gs
dorme por um segundo.HTML,
153148 bytesUsando animação CSS. Testado apenas no Firefox e Chrome.
fonte
@keyframes
declarações por último e remover as duas chaves de fechamento.}
estiver faltando, então, infelizmente, isso não pode ser feito.HTML + JavaScript, 18 + 59 = 77 bytes
Infelizmente, não parece haver uma maneira eficiente de reutilizar
O.innerHTML
...fonte
setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)
?a
lá não modificariaO.innerHTML
.Oitava,
8166 bytes15 bytes salvos graças a @Stewie
Demonstração Online Aqui .
Embora a demonstração mostre dois gráficos separados, quando executada na versão desktop do MATLAB, mostra o primeiro gráfico, aguarda 1 segundo e depois adiciona a segunda sequência ao mesmo gráfico.
Como o Octave não tem suporte para strike através do texto, optei por exibir o texto dentro de um
axes
objeto em uma figura e exibir um "rasurado" exibindo'--------'
sobre o texto inicial (idéia inicial de @Stewie). Anteriormente, eu havia traçado umline
objeto para atravessar'La La Land'
fonte
text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')
.'-'*8+
no lugar dos traços?.
)Bash,
70, 6966 bytes-4 pts graças a Riley
echo La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0m Moonlight"
Créditos à resposta de Sylvain Pineau no AskUbuntu para o rasurado
fonte
\r
o segundo emecho
vez declear
. Além disso, você não precisa do espaço antes do segundoecho
.clear;
deveria ir primeiro. E você tem um espaço desnecessário; echo
.\e[A
; portanto, nãoclear
é necessário. Para mais informações sobre isso, consulte- me .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 bytes
Usando o modo gráfico, desenhe uma linha real no texto. Aqui está o que parece no QB64 :
O código deve ser bastante auto-explicativo, mas aqui está uma versão não destruída:
fonte
MATL, 46 bytes
Como o MATL não tem suporte para códigos de controle ou formatação de texto, essa solução simplesmente alterna entre
'La La Land'
e o'-----------'
mais rápido possível para simular o texto tachado.Explicação
fonte
Bash + PV , 50 bytes
Isso se baseia na resposta Bash do @ DigitalTrauma .
♪
representa um retorno de carro ( 0x0d ),›
um byte CSI ( 0x9b ).Hexdump
Verificação
Como funciona
printf repete sua string de formato quantas vezes forem necessárias para esgotar seus outros argumentos. Como há uma ocorrência de
%b
e dois argumentos (9m\\0
em\ Moonlight
), ele produzirá o seguinte fluxo de bytes.Isso faz o seguinte.
\r
traz o cursor para o início da linha.La La Land
é impresso literalmente.\x9b9m
ativa o texto de referência.\0
define um marcador de fim de linha parapv -0
.\rLa La Land
faz o mesmo que antes.\x9bm
redefina o primeiro plano e o segundo plano para o modo padrão, desativando a passagem.Moonlight
é impresso literalmente.Por fim,
pv -0L1
imprime uma linha terminada em nulo por segundo, introduzindo o atraso desejado.fonte
♪
ajudou seu golfe, ou você quis usá-lo especificamente com o La La Land? Eu gosto disso!♪
às vezes é apenas uma feliz coincidência.pv
vez desleep
como todo mundo, é bonito.pv
é o que tirei da resposta vinculada do Bash, então não posso realmente me responsabilizar por isso.HTML + JavaScript, 10 + 63 = 73 bytes
fonte
PHP (
867569 bytes)Usa o caractere UTF-8 U + 0336 para a tacada.
Editar: salvou 17 bytes com as sugestões comentadas por @Titus
fonte
sleep
sempre retorna 0; então você pode fazersleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"
(-3 bytes).\r
em vez de\033[10D
salva 6 bytes e incluindo-o na cadeia final economiza mais 4.U+0336
para o rasurado".La La Land<?=
vez de<?="La La Land",
salva outros 3 bytes.Pitão - 47 bytes
A coisa tachada agora.
fonte
"
na frente para marcar com +1.<exmpty line>
? Eu sugeriria<pre>
tags.C
8786 bytesVersão não destruída:
fonte
char
e*
.f()
a versão não-destruída, não?f()
.HTML + JavaScript, 100 bytes
fonte
GNU sed + sleep,
6358 bytesEdit: salvou 5 bytes, com base no Trauma Digital comentários 's
A espera entre duas instruções de impressão não pode ser feita usando o sed sozinho e, como tal, eu chamo
sleep 1
. É possível fazer uma chamada de sistema a partir do sed, usando oe
comando, que é uma extensão GNU.Para criar texto de referência (linha 3), uma "combinação de sobreposição de traço longo", U + 0336 , é anexada a cada caractere. Depois disso, movo o cursor para cima uma linha, substituindo efetivamente o texto antigo ao imprimir algo novo, usando as chamadas Sequências de Escape ANSI . Estes são interpretados pelo terminal como comandos especiais de formatação. Você pode encontrar mais informações sobre eles aqui .
Explicação:
fonte
\c
, bom achado! Quanto ao unicode especial, é a primeira vez que ouço sobre isso, mas funciona de fato. Quando é impresso por esta página, é combinado com os
separador de comandos:
, por isso é um pouco estranho ver isso a princípio.Java 7,
207206171139 bytesEstou meio que trapaceando com essa primeira resposta, porque eu uso o unicode strike-through .
Explicação:
Java 7 (com AWT),
444429341 bytesO riscado 444 ainda é regular 444; (
Como o console Java não possui nenhuma marcação como strike-through, você precisará usar o Java AWT. E bem, se você pensou que o Java Console já era detalhado, isso é ainda pior (eu sei, eu sei, a maioria de vocês nem imaginava que o Java 7 fosse pior ..)
Explicação:
Gif de saída:
fonte
String[] a
e usar1e3
em vez de1000
1e3
isso, é um dobro eThread.sleep
espera um longo.1000
é mais curto que(long)1e3
. :)Swing
, nãoSpring
, não é? Eu quase tive um ataque cardíaco! Salte em um codegolf ... Além disso, para salvar bytes, você pode usar o AWT em vez do 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 bytes
Use o Unicode (U + 0336) para fazer a instalação, porque o terminal do macOS não suporta esse
\e[9m
comando.fonte
Arduino,
332331 bytesNão competindo, apenas pela diversão.
Lista de materiais:
fonte
#include
Python3, 99 bytes
fonte
l = 'La La Land
não poderá evitar o valor+s
de -2 caracteres? .Festança + PV, 62
fonte
SmileBASIC, 45 bytes
Menos um byte, graças ao truque mágico do 12Me21.
Até onde eu sei, o SB não tem caracteres tachados, então usei
GLINE
. Obviamente assume uma exibição clara, useACLS
se você precisar.fonte
AHK, 102 bytes
Eu trapacei um pouco para obter o texto tachado usando o caractere unicode de sobreposição de traço longo . Isso pode criar uma aparência estranha, dependendo da sua configuração. O bloco de notas dá uma boa aparência.
O AutoHotkey claramente não é a linguagem mais eficiente para isso, mas foi um desafio divertido. Cuidado ao executá-lo, pois ele não cria sua própria exibição e limpa todo o texto de qualquer janela que esteja ativa.
fonte
Rápido, 392 bytes
O Swift + UIKit não é realmente ideal para jogar golfe! Execute isso em um playground XCode e o resultado será mostrado no painel de visualização.
fonte
l.textColor=UIColor.red
necessário?Geléia , 41 bytes
Não funciona no intérprete online.
fonte
Python (137 bytes)
fonte
import
. Eu também sugeriria salvar "La La Land" como uma variável.TI-BASIC,
5753 bytesObserve que isso usa a capacidade da TI-84 + CE com o SO mais novo para pausar por 1 segundo. Isso retornará um erro de sintaxe na TI-84 +. Para testar, você pode omitir a pausa de 1 segundo removendo essa linha. Lembre-se também de pressionar Zoom, 6 primeiro, para que você esteja nas configurações padrão da janela, caso contrário, o comando line não funcionará.
fonte
SpecBAS - 58 bytes
Cada caractere tem 8x8 pixels, portanto, desenha uma linha de 0,4 à posição relativa 80,4 (80 adicionada à primeira coordenada e 0 a segunda para que permaneça na mesma linha).
fonte
ÓLEO , 76 bytes
Substitua o
⎋
por um caractere de escape e↩︎
por um retorno de carro. OIL não possui nenhum tipo de comando de suspensão, por isso eu o emulo usando um loop com uma contagem regressiva de 89999 a 1. Demora cerca de um segundo no meu computador, mas talvez não no seu.As 3 primeiras linhas são ignoradas pelo intérprete e, em seguida, imprime (
4
) a segunda linha (linha 1; "La La Land"). A estrutura a seguir é o loop que diminui o número grande no final até que seja igual a 1. No final, acabei de imprimir as 3 primeiras linhas.fonte
PHP, não competindo (64 bytes)
usa UTF-8:
--
significaU+0336
- mas tenho certeza de que ele não funciona sozinho.Caso contrário, tente
~"1I"
ou em~I1
vez de--
(+3 ou +1 bytes).Não há tempo para armazená-lo em um arquivo ou descobrir como configurar meu console para UTF-8; então eu não pude testar nenhum deles; mas quem puder: informe-me se isso é completo ou não.
fonte
Powershell, 63 bytes
Funciona apenas no PowerShell ISE. Não concorrente, já que o tachado é alterado por um caractere e não posso corrigi-lo.
fonte