Wydrukuj Oscars Best Picture Winner

49

To wyzwanie jest hołdem dla zwycięzcy Najlepszego Obrazu na Oscars 2017 La La Land Moonlight!


Twoim wyzwaniem jest wydrukowanie tekstu

La La Land
zatrzymaj się na sekundę, a następnie zmień tekst na wyświetlany

La La Land Moonlight
Tekst oryginalny (La La Land) musi mieć przekreślenie . Można to osiągnąć przez wyczyszczenie ekranu, rysowanie na oryginalnym tekście lub za pomocą innych sprytnych rozwiązań.

To jest więc wygrywa najmniej bajtów. Obowiązują standardowe zasady gry w golfa.

vikarjramun
źródło
Och wow! Moje wyzwanie zostało tak dobrze przyjęte, że zostało opublikowane na Twitterze
vikarjramun
Zastanawiam się, czy wszystkie języki mogą korzystać Fakt ten La La La(nd)wzór
12Me21

Odpowiedzi:

13

Galaretka , 31 bajtów

“XSøjĠḌ⁻Ça»Œts⁵µṀȮ⁸œS“Æɓ9m“ɓm”ż

Testowane z Xterm i LANG=en_US. Nie działa w TIO z kilku powodów.

Hexdump

00000000: 58 53 1d 6a c4 ad 8b 0e 61 fb 13 74 73 85 09 c8  XS.j....a..ts...
00000010: ca 88 1e 53 fe 0d 9b 39 6d fe 9b 6d ff f9        ...S...9m..m..

Weryfikacja

zrzut ekranu

tło

Ta odpowiedź wykorzystuje znaki sterujące i sekwencje specjalne ANSI .

  • 0d( <CR>) służy do powrotu do początku wkładki po wydrukowaniu La La Land .

  • 9b 39 6d( <CSI> 9 m) służy do aktywacji przekreślonego tekstu przed wydrukowaniem La La Land po raz drugi.

  • 9b 6d( <CSI> m) służy do resetowania pierwszego planu i tła do domyślnego trybu, wyłączając w ten sposób przekreślanie, przed wydrukowaniem Moonlight .

Jak to działa

“XSøjĠḌ⁻Ça»Œts⁵µṀȮ⁸œS“Æɓ9m“ɓm”ż Main link. No arguments.

“XSøjĠḌ⁻Ça»                     Index into Jelly's inbuilt dictionary to yield
                                "LA LA Land moonlight".
           Œt                   Convert to title case, yielding the string
                                "La La Land Moonlight".
             s⁵                 Split into chunks of length 10, yielding
                                A =: ["La La Land", " Moonlight"].
               µ                Begin a new chain with argument A.
                Ṁ               Take the maximum, yielding "La La Land".
                 Ȯ              Output; print "La La Land".
                  ⁸œS           Sleep for bool("La La Land") seconds and yield A.
                     “Æɓ9m“ɓm”ż Zip ["\r\x9b9m", "\x9bm"] with A, yielding
                                [["\r\x9b9m","La La Land"],["\x9bm"," Moonlight"]].
                                (implicit) Flatten and print.
Dennis
źródło
26

Vim, 37 bajtów

3iLa <esc>snd<esc>gs:s/./&<C-v>u336/g
A Moonlight

Dość proste rozwiązanie.

Oto jego animacja:

wprowadź opis zdjęcia tutaj

DJMcMayhem
źródło
Ale nie ma snu :(
Cruncher
1
@Cruncher Tak, jest! gsśpi przez sekundę.
DJMcMayhem
Ciekawe, jak zazwyczaj to uruchamiasz? Ponieważ wpisałem to w vimie i działa, ale traci blask drugiego opóźnienia (podczas mojego powolnego pisania nawet nie zauważyłem opóźnienia podczas kopiowania stąd)
Cruncher
Nieważne, rozgryzłem to za pomocą makr. Bardzo fajny!
Cruncher
25

HTML, 153 148 bajtów

Korzystanie z animacji CSS. Testowane tylko w Firefox i Chrome.

<s>La La Land</s> <b>Moonlight<style>@keyframes l{0%{text-decoration:none}}@keyframes m{0%{opacity:0}}b,s{animation:m 0s 1s both}s{animation-name:l}

<s> La La Land </s> <b> Moonlight </b>

kennytm
źródło
Możesz umieścić jedną z @keyframesdeklaracji jako ostatnią i usunąć dwa zamykające nawiasy klamrowe.
darrylyeo
@darrylyeo: Firefox odmawia zastosowania reguły, jeśli którejkolwiek z nich }brakuje, więc niestety nie można tego zrobić.
kennytm
19

HTML + JavaScript, 18 + 59 = 77 bajtów

setTimeout('O.innerHTML="<s>La La Land</s> Moonlight"',1e3)
<p id=O>La La Land

Niestety wydaje się, że nie ma skutecznego sposobu na ponowne użycie O.innerHTML...

ETHprodukcje
źródło
Czy setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)zadziała?
Kritixi Lithos
1
@KritixiLithos Nie sądzę; modyfikowanie anie spowoduje modyfikacji O.innerHTML.
ETHprodukcje
18

Oktawa, 81 66 bajtów

15 bajtów zapisanych dzięki @Stewie

text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')

Demo online tutaj .

Podczas gdy demo pokazuje dwa oddzielne wykresy, po uruchomieniu w wersji MATLAB na komputery stacjonarne pokazuje pierwszy wykres, czeka 1 sekundę, a następnie dodaje drugi ciąg do tego samego wykresu.

Ponieważ Octave nie obsługuje axesprzekreślania tekstu, zamiast tego zdecydowałem się wyświetlić tekst w obiekcie na rysunku i wyświetlić „przekreślenie” poprzez wyświetlenie '--------'na początku tekstu początkowego (pomysł początkowy autorstwa @Stewie). Wcześniej nakreśliłem lineobiekt, przez który trzeba przejść'La La Land'

wprowadź opis zdjęcia tutaj

Suever
źródło
1
Nicea podejście ... :) Można zapisać 15 bajtów jak to: text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight').
Stewie Griffin
@StewieGriffin Thanks! Zaktualizowano
Suever
Czy Octave nie pozwala ci robić '-'*8+zamiast myślników?
Nic Hartley,
@QPaysTaxes Niestety tak nie jest.
Suever
1
Cerować. Jeszcze jedno pytanie: dlaczego nie narysować w (0, 0) lub (1, 0)? Wygląda na to, że którykolwiek z nich oszczędziłby ci bajt (nie .)
Nic Hartley
10

Bash, 70, 69 66 bajtów

-4 pkt dzięki Riley

echo La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0m Moonlight"

Podziękowania dla odpowiedzi Sylvaina Pineau na AskUbuntu za przekreślenie

vikarjramun
źródło
1
Myślę, że możesz zaoszczędzić kilka bajtów, używając \rdrugiego echozamiast clear. Ponadto nie potrzebujesz miejsca przed drugim echo.
Riley
To nie drukuje spacji po przekreślonym tekście.
Loovjo
Myślę też, że clear;powinienem iść pierwszy. I masz niepotrzebne miejsce ; echo.
Erik the Outgolfer
2
Krótsze rozwiązanie, które dodaje spację po wykreślonym tekście i modyfikuje drukowany tekst w linii za pomocą kodu ANSI \e[A, więc nie clearjest potrzebne. Aby uzyskać więcej informacji na ten temat, zobacz mnie . s="La La Land";echo $s;sleep 1;echo -e "\e[A\e[9m$s\e[0m Moonlight"
seshoumara
1
Lubecho -n La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0mMoonlight"
Cyfrowa trauma
9

QBasic, 61 bajtów

SCREEN 9
?"La La Land";
SLEEP 1
LINE(0,7)-(80,7)
?" Moonlight

W trybie graficznym narysuj rzeczywistą linię przez tekst. Oto jak to wygląda w QB64 :

światło księżyca

Kod powinien być dość zrozumiały, ale tutaj jest wersja bez golfisty:

SCREEN 9             ' One of several graphics modes
PRINT "La La Land";  ' The semicolon suppresses the trailing newline
SLEEP 1
LINE (0,7)-(80,7)
PRINT " Moonlight"
DLosc
źródło
8

MATL, 46 bajtów

'La La Land'tDlY.ttv45HY(`t@Y)' Moonlight'hXxDT

Ponieważ MATL nie obsługuje kodów sterujących ani formatowania tekstu, to rozwiązanie po prostu przełącza się między 'La La Land'i '-----------'tak szybko, jak to możliwe, aby symulować przekreślony tekst.

wprowadź opis zdjęcia tutaj

Wyjaśnienie

'La La Land'   % Push the string literal to the stack
tD             % Duplicate this string and display
tv             % Stack a version of this string on top of another
45HY(          % Replace the second one with '----------'
`              % Do...while loop
  t            % Duplicate the 2D character array
  @Y)          % Grab the row corresponding to the loop index (modular indexing)
  ' Moonlight' % Push the string literal to the stack
  h            % Horizontally concatenate the two
  Xx           % Clear the display
  D            % Display the string
  T            % Push a literal TRUE to the stack to make it an infinite loop
Suever
źródło
1
Twórczy! Lubię to
vikarjramun
3
+1 za kreatywność, ale nie jestem pewien, czy spełnia ona zasady.
DBX12
5

Bash + pv , 50 bajtów

printf ♪La\ La\ Land›%b 9m\\0 m\ Moonlight|pv -0L1

Opiera się to na odpowiedzi Bash @ DigitalTrauma .

reprezentuje powrót karetki ( 0x0d ), bajt CSI ( 0x9b ).

Hexdump

0000000: 70 72 69 6e 74 66 20 0d 4c 61 5c 20 4c 61 5c 20  printf .La\ La\
0000010: 4c 61 6e 64 9b 25 62 20 39 6d 5c 5c 30 20 6d 5c  Land.%b 9m\\0 m\
0000020: 20 4d 6f 6f 6e 6c 69 67 68 74 7c 70 76 20 2d 30   Moonlight|pv -0
0000030: 4c 31                                            L1

Weryfikacja

zrzut ekranu

Jak to działa

printf powtarza ciąg formatu tyle razy, ile potrzeba, aby wyczerpać inne argumenty. Ponieważ występuje jedno wystąpienie %bi dwa argumenty ( 9m\\0i m\ Moonlight), wygeneruje następujący strumień bajtów.

\rLa La Land\x9b9m\0\rLa La Land\x9bm Moonlight

Działa to następująco.

  • \r przesuwa kursor na początek linii.

  • La La Land jest drukowane dosłownie.

  • \x9b9m aktywuje przekreślony tekst.

  • \0ustawia znacznik końca linii dla pv -0.

  • \rLa La Land robi to samo co poprzednio.

  • \x9bm przywróć domyślny tryb pierwszego planu i tła, wyłączając przekreślanie.

  • Moonlight jest drukowane dosłownie.

Na koniec pv -0L1drukuje jedną zerowaną linię na sekundę, wprowadzając pożądane opóźnienie.

Dennis
źródło
3
Czy to przypadek, który pomógł ci w grze w golfa, czy może chciałeś go użyć w La La Land? Lubię to!
BruceWayne
Powrót karetki to najkrótsza droga do powrotu na początek linii. Fakt, że czasami jest stylizowany, jest po prostu szczęśliwym zbiegiem okoliczności.
Dennis
Zastosowanie pvzamiast sleepjak wszyscy inni jest piękne.
IQAndreas
1
@IQAndreas Pomysł, który wykorzystałem, pvjest tym, co wziąłem z połączonej odpowiedzi Bash, więc tak naprawdę nie mogę tego przypisać.
Dennis
3

HTML + JavaScript, 10 + 63 = 73 bajty

setTimeout("document.write('<s>La La Land</s> Moonlight')",1e3)
La La Land

nderscore
źródło
W jakiej przeglądarce to działa?
Tytus
2
@Titus Myślę, że wszystkie z nich, ale potwierdziłem, że działa do tej pory w Chrome + Firefox
nderscore
3

PHP ( 86 75 69 bajtów)

La La Land<?=sleep(1)?:"\rL̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight";

Używa znaku UTF-8 U + 0336 do przekreślenia.

Edycja: Zapisano 17 bajtów wraz z sugestiami skomentowanymi przez @Titus

madshvero
źródło
1
sleepzawsze zwraca 0; więc możesz po prostu zrobić sleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"(-3 bajty). \rzamiast \033[10Dzapisywać 6 bajtów i umieszczenie go w ostatnim ciągu oszczędza kolejne 4.
Tytus
Och, wow, każdy z tych, które powinienem był widzieć, chyba przychodzi z praktyką. Wielkie dzięki! jeśli chcesz zrobić własną odpowiedź, aby uzyskać powtórzenie, ponieważ ma 11 bajtów poprawy, mogę usunąć moją odpowiedź i głosować twoją :)
madshvero
Nie trzeba usuwać prawidłowej odpowiedzi. Nie publikuję swoich własnych, gdy gram w golfa odpowiedzi innych - chyba że OP nie zareaguje. Oto jeszcze trzy bajty: wiodące puste miejsce nie jest wymagane, podobnie jak przekreślenie ostatniego pustego miejsca. Używanie UTF-8 jako zestawu znaków nie oszukuje; ale można wspomnieć, że „ U+0336do przekreślenia używa znaku UTF-8 ”.
Tytus
Aha i La La Land<?=zamiast <?="La La Land",oszczędza kolejne 3 bajty.
Tytus
3

Pyth - 47 bajtów

Robi teraz przekreślenie.

K „La La Land” .d_1 „\ 033c” + j ”\ u0336„ K ”Moonlight
Maltysen
źródło
To nie działa; potrzebujesz "+1 z przodu.
Erik the Outgolfer
@EriktheOutgolfer> _ <nie wiem jak to się stało.
Maltysen
Co to jest <exmpty line>? Sugerowałbym <pre>tagi.
CalculatorFeline
3

C 87 86 bajtów

f(){char*s="La La Land";puts(s);printf("\e[9m%s\e[0m",s);sleep(1);puts(" Moonlight");}

Wersja bez golfa:

void f()
{
  char *s="La La Land";
  puts(s);
  printf("\e[9m%s\e[0m",s);
  sleep(1);
  puts(" Moonlight");

}
Abel Tom
źródło
2
Nie potrzebujesz odstępu między chari *.
kennytm
Musisz także zadzwonić f()w wersji bez golfa, nie?
Rodrigo Hahn
@kennytm Thnaks za zapisanie 1 bajtu. zaktualizowany.
Abel Tom
1
@RodrigoHahn Domyślnie odpowiedź na kod-golf może być funkcją lub programem , więc nie, nie musimy dzwonić f().
kennytm
3

HTML + JavaScript, 100 bajtów

La La Land<script>setTimeout(function(){document.write("<s>La La Land</s> Moonlight")},1e3)</script>

setTimeout(function(){document.write("<s>La La Land</s> Moonlight")},1e3);
La La Land

Sourav
źródło
W jaki sposób document.write zastępuje istniejący tekst?
vikarjramun
jeśli twój dokument jest w pełni załadowany, używasz document.write (np. dołączanie ze zdarzeniem lub z przekroczeniem limitu czasu) usunie cały istniejący HTML. refer = w3schools.com/jsref/met_doc_write.asp
Sourav
3

GNU sed + sleep, 63 58 bajtów

Edycja: zapisano 5 bajtów na podstawie komentarzy Digital Trauma

Oczekiwanie między dwiema instrukcjami wydruku nie może być wykonane przy użyciu samego seda i jako takie dzwonię sleep 1. Możliwe jest wykonanie wywołania systemowego z sed za pomocą epolecenia, które jest rozszerzeniem GNU.

s:$:La La Land:p
esleep 1
s:.:&̶:g
s:.*:\c[[A& Moonlight:

Aby utworzyć tekst przekreślony (wiersz 3), do każdego znaku dołączana jest „kombinacja nakładki o długim skoku”, U + 0336 . Następnie przesuwam kursor w górę o 1 linię, skutecznie zastępując stary tekst podczas drukowania czegoś nowego, używając tak zwanych sekwencji ucieczki ANSI . Są one interpretowane przez terminal jako specjalne polecenia formatujące. Więcej informacji na ich temat można znaleźć tutaj .

obraz gif

Wyjaśnienie:

s:$:La La Land:p         # add "La La Land" to pattern space and print it
esleep 1                 # run system command 'sleep 1'
s:.:&̶:g                  # append U+0336 after each character (strike-through)
s:.*:\c[[A& Moonlight:   # '\c[[A' is '(escape)[A', ANSI code to move the cursor
                         #up 1 line. Then append ' Moonlight' and print on exit.
seshoumara
źródło
1
@DigitalTrauma Całkowicie zapomniałem o \cmiłym znalezisku! Jeśli chodzi o ten specjalny Unicode, po raz pierwszy o nim słyszę, ale rzeczywiście działa. Kiedy jest drukowany przez tę stronę, jest łączony z sseparatorem poleceń :, więc trochę dziwne, aby to zobaczyć na początku.
seshoumara
3

Java 7, 207 206 171 139 bajtów

void c()throws Exception{System.out.print("La La Land");Thread.sleep(1000);System.out.print("\rL̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight");}

Trochę oszukuję z tą pierwszą odpowiedzią, ponieważ używam przekreślonego Unicode .

Wyjaśnienie:

void c() throws Exception{         // Method (throws is necessary due to Thread.sleep)
  System.out.print("La La Land");  //  Show initial text
  Thread.sleep(1000);              //  Wait 1 second
  System.out.print("\r             //  Move 'cursor' to the start of the line so we can overwrite the current text
    L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight");        //  and print new text
}                                  // End of method

Java 7 (z AWT), 444 429 341 bajtów

Przekreślony 444 jest nadal regularny 444; (

import java.awt.*;import java.text.*;void m(){new Frame(){public void paint(Graphics g){g.drawString("La La Land",9,50);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(),9,50);}}.show();}

Ponieważ konsola Java nie ma znaczników takich jak przekreślanie, będziesz musiał użyć Java AWT. I cóż, jeśli myślałeś, że Java Console jest już gadatliwa, to jest jeszcze gorzej (wiem, wiem, większość z was nawet nie wyobrażała sobie, że Java 7 jest gorsza ..)

Wyjaśnienie:

import java.awt.*;                                         // import used for Frame and Graphics
import java.text.*;                                        // Import used for all AttributedStrings
void m(){                                                  // method
  new Frame(){                                             //  Frame
    public void paint(Graphics g){                         //   Overridden paint method
      g.drawString("La La Land", 9, 50);                   //    Show the initial text
      try{
        Thread.sleep(1000);                                //    Wait 1 second
      }catch(Exception e){}                                //    Thread.sleep requires a try-catch..
      AttributedString s
          = new AttributedString("La La Land Moonlight");  //    Object to add markup to text
      s.addAttribute(
        java.awt.font.TextAttribute.STRIKETHROUGH,         //    Strike-through attribute
        1>0,//true                                         //    Mandatory parameter before we can specify the length
        0, 10);                                            //    From length 0 to 10 (length of "La La Land")
      g.drawString(s.getIterator(), 9, 50);                //    Show this new text with strike-through part
    }                                                      //   End of paint method
  }.show();                                                //  Show Frame
}                                                          // End of method

Dane wyjściowe gif:

wprowadź opis zdjęcia tutaj

Kevin Cruijssen
źródło
Myślę, że możesz usunąć miejsce String[] ai użyć 1e3zamiast1000
Kritixi Lithos
@KritixiLithos Ta przestrzeń rzeczywiście powinna zniknąć .. prawdopodobnie wymknęła się podczas gry w golfa. Jeśli chodzi o 1e3, to jest podwójne i Thread.sleepoczekuje długo. 1000jest krótszy niż (long)1e3. :)
Kevin Cruijssen
2
Masz na myśli Swing, nie Spring, prawda? Prawie miałem zawał serca! Wiosna w codegolf ... Ponadto, aby zaoszczędzić bajty, możesz użyć AWT zamiast Swing.
Olivier Grégoire
@ OlivierGrégoire Ach, literówka, naprawdę miałem na myśli Swinga .. I dzięki, AWT jest krótszy, wcale nie potrzeba Swinga (lub Spring: P).
Kevin Cruijssen
1
Zrobiłem wersję AWT funkcją (Java 7) z anonimową klasą wewnętrzną. Usunąłem pierwsze bzdury z atrybutu „AttributeString” i grałem w golfa więcej za 306 bajtów. Jeśli korzystasz z Java 8, nadal jest to 302 bajty. 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();}
Olivier Grégoire,
2

Python 3, 90 bajtów

Do przekreślenia użyj Unicode (U + 0336), ponieważ terminal macOS nie obsługuje tej \e[9mkomendy.

import time
s='La La Land '
print(s,end='\r')
time.sleep(1)
print('̶'.join(s),'Moonlight')

L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight

kennytm
źródło
2

Arduino, 332 331 bajtów

Nie konkuruje, tylko dla zabawy.

#include<LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12);String a="La La Land";String b="-- -- ----";void setup(){lcd.begin(16,2);}void loop(){lcd.home();lcd.print(a);delay(1000);lcd.clear();lcd.print(b);lcd.setCursor(0,2);lcd.print("Moonlight");while(1){delay(150);lcd.home();lcd.print(a);delay(150);lcd.home();lcd.print(b);}}

Zestawienie materiałów:

  • 1 x Arduino Uno
  • 1 x LCD 16 x 2
  • 1 x potencjometr 10K
  • Rezystor 1 x 180 omów

L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight

fluxa
źródło
1
Witamy na stronie. Nie wiem, jak Arduino jest podobne do C, ale jestem pewien, że możesz usunąć miejsce w swoim#include
Wheat Wizard
Według moich obliczeń sprzęt kosztuje 30 bajtów (2 dla rezystora, 3 dla potencjometru, 1 dla jego ustawienia, 10 (w górę dla zmiany) dla LCD i 14 dla drutów (1 bajt na drut)). Jest to jednak tylko sugestia. Ponadto TIO twierdzi, że kod ma tylko 331 bajtów. Czy istnieje nowa linia?
CalculatorFeline
@WheatWizard to prawda. naprawione!
fluxa
1
Dobra uwaga @CalculatorFeline, ale w takim przypadku powinniśmy również policzyć koszty sprzętu wszystkich pozostałych odpowiedzi. Być może moja konfiguracja jest najtańsza. : D
fluxa
... D8 To już koniec D8
CalculatorFeline
2

Python3, 99 bajtów

import time
l='La La Land'
s='\u0336'
print(l,end="\r")
time.sleep(1)
print(s.join(l)+' Moonlight')
Miguel
źródło
Jeśli ustawiłeś, l = 'La La Land nie mogłeś ominąć +sznaków -2? .
walpen
@walpen Muszę go użyć dwa razy, dlatego zapisałem go s
Miguel
1

Bash + pv, 62

l="La La Land"
printf "$l\0\r\e[9m$l\e[0m Moonlight"|pv -0qlL1
Cyfrowa trauma
źródło
1

SmileBASIC, 45 bajtów

Jeden bajt mniej dzięki sztuczce magicznej 12Me21.

O ile mi wiadomo SB nie ma przekreślonych postaci, więc użyłem GLINEzamiast tego. Oczywiście zakłada wyraźny wyświetlacz, użyj w ACLSrazie potrzeby.

?"La La Land
WAIT 60GLINE.,4,79,4?" Moonlight
ślimak_
źródło
1

AHK, 102 bajty

s=La La Land
Send,%s%
Sleep,1000
Send,^a{Del}
Loop,Parse,s
Send,%A_LoopField%{U+0336}
Send,` Moonlight

Oszukałem trochę, aby uzyskać przekreślony tekst, używając łączącego znak Unicode nakładki o długim pociągnięciu . Może to powodować dziwny wygląd w zależności od konfiguracji. Notatnik daje dobry wygląd.

Kod w akcji


AutoHotkey nie jest najwyraźniej najskuteczniejszym językiem, ale było to zabawne wyzwanie. Uważaj, gdzie go uruchomisz, ponieważ nie tworzy on własnego wyświetlacza i czyści cały tekst dowolnego aktywnego okna.

Inżynier Toast
źródło
1

Szybki, 392 bajty

Swift + UIKit nie jest naprawdę idealny do gry w golfa! Uruchom to na placu zabaw XCode, a wynik zostanie wyświetlony w okienku podglądu.

import UIKit
import PlaygroundSupport
let l=UILabel(frame:CGRect(x:0,y:0,width:200,height:20))
l.textColor=UIColor.red
let m="La La Land"
let n=" Moonlight"
l.text=m
DispatchQueue.main.asyncAfter(deadline:.now()+1){
let a=NSMutableAttributedString(string:m+n)
a.addAttribute("NSStrikethrough",value:1,range:NSRange(location:0,length:10))
l.attributedText=a
}
PlaygroundPage.current.liveView=l

zapowiedź

Matt
źródło
Czy to l.textColor=UIColor.redkonieczne?
Albert Renshaw,
wydaje się domyślnie czarny tekst na czarnym tle, w przeciwnym razie
Matt
0

Galaretka , 41 bajtów

“ñ[“m‘Ọj
“¡ṭḊßȥṡoẋ»¹13Ọ;9Ǥ;;0Ǥ;“"dE»œS1

Nie działa w przypadku tłumacza online.

Erik the Outgolfer
źródło
Dlaczego nie? Czy zgodność można tanio dodać?
CalculatorFeline
@CalculatorFeline Nie, Dennis musi zaimplementować kody kontrolne, aby działało, a obecnie nie jest to jego priorytet.
Erik the Outgolfer
Czy możesz podać zrzut ekranu / animowany gif wyniku?
2017
@ ʰᵈˑ Mogę to zrobić, chociaż nie ma gwarancji. W międzyczasie możesz pobrać tłumacza i przetestować go sam :)
Erik the Outgolfer
0

Python (137 bajtów)

from turtle import *;import time;write("La La Land");time.sleep(1);clearscreen();write("\u0336".join("La La Land ")+" Moonlight");done()
hubacub
źródło
2
Nie potrzebujesz miejsca po import. Sugerowałbym również zapisanie „La La Land” jako zmiennej.
Kreator pszenicy
0

TI-BASIC, 57 53 bajtów

:" LA
:Text(3,4,Ans+Ans+Ans+"ND
:Pause "",1
:Line(-9,8,-2,8
:Text(3,41,"MOONLIGHT

Zauważ, że używa to zdolności TI-84 + CE w najnowszym systemie operacyjnym do wstrzymania na 1 sekundę. To zwróci błąd syntaktyczny na TI-84 +. Do testowania możesz pominąć 1 sekundową pauzę, usuwając tę ​​linię. Pamiętaj też, aby najpierw nacisnąć Zoom, 6, abyś był w ustawieniach domyślnych okna, w przeciwnym razie polecenie linii nie zadziała.

Golden Ratio
źródło
0

SpecBAS - 58 bajtów

1  ?"La La Land ";
2 WAIT 1e3
3 DRAW 0,4;80,0
4  ?"Moonlight"

Każdy znak ma 8 x 8 pikseli, więc rysuje linię od 0,4 do względnej pozycji 80,4 (80 dodane do pierwszej współrzędnej i 0 do drugiej, aby pozostała na tej samej linii).

wprowadź opis zdjęcia tutaj

Brian
źródło
0

OLEJ , 76 bajtów

↩︎⎋[9m
La La Land
⎋[0m Moonlight
4
1
10
20
4
14
10
9
20
6
5
4
0
4
1
4
2
89999

Zamień na znak ucieczki i ↩︎znak powrotu karetki. OIL nie ma żadnego polecenia uśpienia, więc emuluję go za pomocą pętli, która odlicza od 89999 do 1. To zajmuje około sekundy na moim komputerze, ale może nie na twoim.

Pierwsze 3 linie są ignorowane przez interpretera, a następnie drukuje ( 4) drugą linię (linia 1; „La La Land”). Poniższa struktura to pętla, która zmniejsza dużą liczbę na końcu, aż będzie równa 1. Na końcu po prostu wypisuję pierwsze 3 linie.

L3viathan
źródło
0

PHP, nie konkuruje (64 bajty)

<?=$s="\rLa La Land",sleep(1)?:wordwrap($s,1,--,1)," Moonlight";

używa UTF-8: --oznacza U+0336- ale jestem całkiem pewien, że nie działa samodzielnie.

Jeśli nie, spróbuj ~"1I"lub ~I1zamiast --(+3 lub +1 bajtów).

Nie ma czasu, aby zapisać go do pliku lub dowiedzieć się, jak ustawić konsolę na UTF-8; więc nie mogłem przetestować żadnego z nich; ale ktokolwiek może: proszę dać mi znać, czy jest to pełna BS, czy nie.

Tytus
źródło
0

PowerShell, 63 bajty

Działa tylko w programie PowerShell ISE. Nie konkuruje, ponieważ przekreślenie jest przesunięte o jeden znak i nie mogę tego naprawić.

'La La Land',('̶'*10+' Moonlight')|%{sleep 1;Write-Host $_ -N}

L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight

beatcracker
źródło