Drucken Sie den Oscars Best Picture Winner aus


49

Diese Herausforderung ist eine Hommage an den Gewinner von Best Picture bei den Oscars 2017, La La Land Moonlight!


Ihre Herausforderung besteht darin, den Text zu drucken

La La Land
Halten Sie eine Sekunde an und ändern Sie dann den anzuzeigenden Text

La La Land Mondschein
Der Originaltext (La La Land) muss durchgestrichen sein . Dies kann entweder durch Löschen des Bildschirms, Zeichnen über dem Originaltext oder durch andere clevere Lösungen erreicht werden.

Dies ist ein also gewinnt das niedrigste Byte. Es gelten die Standardregeln für Code-Golf.


Oh wow! Meine Herausforderung wurde so gut aufgenommen, dass sie auf Twitter veröffentlicht wurde
vikarjramun

Ich frage mich, ob Sprachen das La La La(nd)Muster verwenden können
12Me21

Antworten:


13

Gelee , 31 Bytes

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

Getestet mit xterm und LANG=en_US. Funktioniert aus mehreren Gründen nicht mit TIO.

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..

Nachprüfung

Bildschirmaufnahme

Hintergrund

Diese Antwort verwendet Steuerzeichen und ANSI-Escape-Sequenzen .

  • 0d( <CR>) wird verwendet, um nach dem Drucken von La La Land zum Anfang des Liners zurückzukehren .

  • 9b 39 6d( <CSI> 9 m) wird verwendet, um durchgestrichenen Text zu aktivieren, bevor La La Land zum zweiten Mal gedruckt wird.

  • 9b 6d( <CSI> m) wird verwendet, um den Vordergrund und den Hintergrund auf den Standardmodus zurückzusetzen und so das Durchstreichen zu deaktivieren, bevor Moonlight gedruckt wird .

Wie es funktioniert

“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.

26

Vim, 37 Bytes

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

Eine ziemlich einfache Lösung.

Hier ist eine Animation davon:

Bildbeschreibung hier eingeben


Aber es gibt keinen Schlaf :(
Cruncher

1
@ Cruncher Ja, das gibt es! gsschläft für eine Sekunde.
DJMcMayhem

Interessant, wie läuft das normalerweise ab? Weil ich dies in vim eingegeben habe und es funktioniert, aber es verliert den Glanz der zweiten Verzögerung (bei meiner langsamen Eingabe habe ich die Verzögerung nicht einmal bemerkt, als ich von hier kopierte)
Cruncher

Egal, ich habe es mit Makros herausgefunden. Sehr cool!
Cruncher

25

HTML, 153 148 Bytes

CSS-Animation verwenden. Nur unter Firefox und Chrome getestet.

<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> Mondschein </ b>


Sie können eine der @keyframesDeklarationen zuletzt einfügen und die beiden schließenden geschweiften Klammern entfernen.
darrylyeo

@darrylyeo: Firefox lehnt es ab, eine Regel anzuwenden, wenn eine der Regeln }fehlt. Dies ist leider nicht möglich.
kennytm

19

HTML + JavaScript, 18 + 59 = 77 Byte

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

Leider scheint es keinen effizienten Weg zur Wiederverwendung zu geben O.innerHTML...


Würde setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)funktionieren
Kritixi Lithos

1
@KritixiLithos Das glaube ich nicht. Modifizieren aes nicht ändern würde O.innerHTML.
ETHproductions

18

Oktave, 81 66 Bytes

15 Bytes gespart dank @Stewie

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

Online Demo hier .

Während die Demo zwei separate Diagramme zeigt, wird bei Ausführung in der Desktop-Version von MATLAB das erste Diagramm angezeigt, es wird 1 Sekunde gewartet und anschließend wird die zweite Zeichenfolge demselben Diagramm hinzugefügt.

Da Octave das Durchstreichen von Text nicht unterstützt, habe ich mich stattdessen dafür entschieden, den Text innerhalb eines axesObjekts in einer Figur anzuzeigen und ein "Durchstreichen" durch Anzeigen '--------'über dem ursprünglichen Text (ursprüngliche Idee von @Stewie) anzuzeigen. Zuvor hatte ich tatsächlich ein lineObjekt geplottet , das durchgestrichen werden sollte'La La Land'

Bildbeschreibung hier eingeben


1
Nizza Ansatz ... :) Sie können 15 Bytes wie folgt speichern: text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight').
Stewie Griffin

@StewieGriffin Danke! Aktualisiert
Suever

Lässt Octave Sie nicht '-'*8+anstelle der Bindestriche tun ?
Nic Hartley

@ QPaysTaxes Leider nicht.
Suever

1
Verdammt. Noch eine Frage: Warum nicht bei (0, 0) oder (1, 0) zeichnen? Scheint, als würde Ihnen einer von beiden ein Byte ersparen (nein .)
Nic Hartley

10

Bash, 70, 69, 66 Bytes

-4 Punkte danke an Riley

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

Dank an Sylvain Pineaus Antwort auf AskUbuntu für den Durchschlag


1
Ich denke, Sie können ein paar Bytes sparen, indem Sie \rin der Sekunde echostatt clear. Außerdem brauchen Sie den Platz nicht vor dem zweiten echo.
Riley

Hiermit wird das Leerzeichen nach dem durchgestrichenen Text nicht gedruckt.
Loovjo

Ich denke auch, clear;sollte zuerst gehen. Und Sie haben einen unnötigen Platz in ; echo.
Erik der Outgolfer

2
Kürzere Lösung, die den Platz nach dem gestrichenen Text einfügt und den gedruckten Text in der Zeile mithilfe von ANSI-Code ändert \e[A, sodass keine Änderung clearerforderlich ist. Weitere Infos dazu gibt es bei mir . s="La La Land";echo $s;sleep 1;echo -e "\e[A\e[9m$s\e[0m Moonlight"
Seshoumara

1
Oderecho -n La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0mMoonlight"
Digitales Trauma

9

QBasic, 61 Bytes

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

Zeichnen Sie im Grafikmodus eine tatsächliche Linie durch den Text. So sieht es in QB64 aus :

Mondlicht

Der Code sollte ziemlich selbsterklärend sein, aber hier ist eine ungolfed Version:

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"

8

MATL, 46 Bytes

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

Da MATL keine Unterstützung für Steuercodes oder Textformatierungen bietet, wechselt diese Lösung einfach 'La La Land'und '-----------'so schnell wie möglich, um durchgestrichenen Text zu simulieren.

Bildbeschreibung hier eingeben

Erläuterung

'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

1
Kreativ! Ich mag es
vikarjramun

3
+1 für Kreativität, aber nicht sicher, ob es den Regeln entspricht.
DBX12,

5

Bash + pv , 50 Bytes

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

Dies baut auf der Bash-Antwort von @ DigitalTrauma auf .

repräsentiert einen Wagenrücklauf ( 0x0d ), ein CSI-Byte ( 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

Nachprüfung

Bildschirmaufnahme

Wie es funktioniert

printf wiederholt die Formatzeichenfolge so oft, bis die anderen Argumente erschöpft sind. Da es ein Vorkommen von %bund zwei Argumente ( 9m\\0und m\ Moonlight) gibt, wird der folgende Byte-Stream erzeugt.

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

Dies bewirkt Folgendes.

  • \r Bringt den Cursor an den Zeilenanfang.

  • La La Land wird wörtlich gedruckt.

  • \x9b9m Aktiviert durchgestrichenen Text.

  • \0setzt einen Zeilenende-Marker für pv -0.

  • \rLa La Land macht das selbe wie vorher.

  • \x9bm Vordergrund und Hintergrund in den Standardmodus zurücksetzen und Durchstreichen deaktivieren.

  • Moonlight wird wörtlich gedruckt.

Zum Schluss wird pv -0L1eine nullterminierte Zeile pro Sekunde gedruckt, wodurch die gewünschte Verzögerung eingeführt wird.


3
Ist es ein Zufall, der Ihnen beim Golfen geholfen hat, oder wollten Sie ihn speziell bei La La Land einsetzen? Ich mag das!
BruceWayne

Ein Wagenrücklauf ist der kürzeste Weg, um zum Zeilenanfang zurückzukehren. Die Tatsache, dass es wie manchmal stilisiert ist, ist nur ein glücklicher Zufall.
Dennis

Die Verwendung von pvanstelle von sleepwie jeder andere ist wunderschön.
IQAndreas

1
@IQAndreas Die zu verwendende Idee pvstammt aus der verknüpften Bash-Antwort, daher kann ich das nicht wirklich würdigen .
Dennis

3

HTML + JavaScript, 10 + 63 = 73 Bytes

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


In welchem ​​Browser funktioniert das?
Titus

2
@Titus Ich denke alle, aber ich habe bestätigt, dass es in Chrome + Firefox
funktioniert

3

PHP ( 86 75 69 Bytes)

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

Verwendet das UTF-8-Zeichen U + 0336 zum Durchstreichen.

Bearbeiten: Gespeicherte 17 Bytes mit den Vorschlägen @Titus kommentiert


1
sleepgibt immer 0 zurück; Sie können es also einfach tun sleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"(-3 Bytes). \rAnstatt \033[10D6 Bytes zu speichern und in die letzte Zeichenfolge aufzunehmen, werden weitere 4
Titus

Oh, wow, jeder von denen, die ich hätte sehen sollen, kommt wohl mit Übung. Danke vielmals! Wenn Sie Ihre eigene Antwort erstellen
möchten

Keine Notwendigkeit, eine gültige Antwort zu löschen. Ich poste meine eigenen nicht, wenn ich die Antworten anderer spiele - es sei denn, der OP reagiert nicht. Hier sind drei weitere Bytes: Das führende Leerzeichen ist nicht erforderlich, und das letzte Leerzeichen muss nicht durchgestrichen werden. Die Verwendung von UTF-8 als Zeichensatz ist kein Betrug. Sie könnten aber auch "verwendet UTF-8-Zeichen U+0336für das Durchstreichen" erwähnen.
Titus

Ach ja und spart La La Land<?=stattdessen <?="La La Land",noch 3 Bytes.
Titus

3

Pyth - 47 Bytes

Tut das Durchgestrichene jetzt.

K "La La Land" .d_1 "\ 033c" + j "\ u0336" K "Moonlight

Es funktioniert nicht; du brauchst ein "vorne für +1.
Erik der Outgolfer

@EriktheOutgolfer> _ <weiß nicht, wie das passiert ist.
Maltysen

Was ist ein <exmpty line>? Ich würde <pre>Tags vorschlagen .
CalculatorFeline

3

C 87 86 Bytes

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

Ungolfed-Version:

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

}

2
Sie brauchen keinen Abstand zwischen charund *.
Kennytm

Sie müssen auch f()die ungolfed Version aufrufen, nein?
Rodrigo Hahn

@kennytm Thnaks zum Speichern von 1 Byte. Aktualisiert.
Abel Tom

1
@RodrigoHahn Standardmäßig kann eine Code-Golf-Antwort eine Funktion oder ein Programm sein . Nein, wir müssen also nicht anrufen f().
Kennytm

3

HTML + JavaScript, 100 Bytes

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


Wie kommt es, dass document.write den vorhandenen Text überschreibt?
Vikarjramun

Wenn Ihr Dokument vollständig geladen ist, verwenden Sie document.write (wie das Anhängen eines Ereignisses oder mit Zeitüberschreitung), um den gesamten vorhandenen HTML-Code zu löschen. refer = w3schools.com/jsref/met_doc_write.asp
Sourav

3

GNU sed + sleep, 63 58 Bytes

Bearbeiten: 5 Bytes gespeichert, basierend auf den Kommentaren von Digital Trauma

Das Warten zwischen zwei print-Anweisungen kann nicht mit sed alleine durchgeführt werden, und als solches rufe ich an sleep 1. Es ist möglich, einen Systemaufruf von sed mit dem eBefehl auszuführen , der eine GNU-Erweiterung ist.

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

Um einen durchgestrichenen Text (Zeile 3) zu erstellen , wird an jedes Zeichen eine "kombinierende Überlagerung mit langen Strichen" ( U + 0336) angehängt. Danach bewege ich den Cursor eine Zeile nach oben und ersetze den alten Text beim Drucken von etwas Neuem mithilfe der sogenannten ANSI-Escape-Sequenzen . Diese werden vom Terminal als spezielle Formatierungsbefehle interpretiert. Weitere Informationen dazu finden Sie hier .

GIF-Bild

Erläuterung:

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.

1
@DigitalTrauma Völlig vergessen \c, nette Entdeckung! Was diesen speziellen Unicode betrifft, ist es das erste Mal, dass ich davon höre, aber es funktioniert tatsächlich. Wenn es von dieser Seite gedruckt wird, wird sie mit dem Befehl kombinierten sAbscheider :, so etwas seltsam , dass zunächst zu sehen.
Seshoumara

3

Java 7, 207 206 171 139 Bytes

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");}

Ich betrüge ein bisschen mit dieser ersten Antwort, weil ich einen durchgestrichenen Unicode verwende .

Erläuterung:

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 (mit AWT), 444 429 341 Bytes

Durchgestrichen 444 ist immer noch regulär 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();}

Da die Java-Konsole kein Markup wie Durchgestrichen hat, müssen Sie Java AWT verwenden. Und nun, wenn Sie dachten, Java Console wäre bereits ausführlich, dann ist dies noch schlimmer (ich weiß, ich weiß, die meisten von Ihnen konnten sich nicht vorstellen, dass Java 7 noch schlimmer sein könnte.)

Erläuterung:

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

Ausgangsgif:

Bildbeschreibung hier eingeben


Ich denke, Sie können den Raum in entfernen String[] aund 1e3stattdessen verwenden1000
Kritixi Lithos

@KritixiLithos Der Platz hätte ja weg sein sollen .. wahrscheinlich beim Golfen vorbei gerutscht. Was das angeht 1e3, ist das ein Doppelgänger und Thread.sleeperwartet einen langen. 1000ist kürzer als (long)1e3. :)
Kevin Cruijssen

2
Sie meinen Swing, Springnicht wahr? Ich hatte fast einen Herzinfarkt! Frühling in einem Codegolf ... Um Bytes zu sparen, können Sie AWT anstelle von Swing verwenden.
Olivier Grégoire

@ OlivierGrégoire Ah, Tippfehler, ich meinte in der Tat Swing. Und danke, AWT ist kürzer, Swing (oder Spring: P) ist überhaupt nicht nötig.
Kevin Cruijssen

1
Ich habe die AWT-Version zu einer (Java 7) -Funktion mit anonymer innerer Klasse gemacht. Ich habe den ersten AttributedString-Quatsch entfernt und mehr für insgesamt 306 Bytes gespielt. Wenn Sie Java 8 verwenden, sind es immer noch 302 Bytes. 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 Bytes

Verwenden Sie Unicode (U + 0336) zum Durchstreichen, da das macOS-Terminal diesen \e[9mBefehl nicht unterstützt .

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̶ Mondschein


2

Arduino, 332 331 Bytes

Nicht konkurrieren, nur zum Spaß.

#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);}}

Stückliste:

  • 1 x Arduino Uno
  • 1 x LCD 16 x 2
  • 1 x 10K Potentiometer
  • 1 x 180 Ohm Widerstand

L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Mondschein


1
Willkommen auf der Seite. Ich weiß nicht, wie ähnlich Arduino C ist, aber ich bin mir ziemlich sicher, dass Sie das Leerzeichen in Ihrem#include
Wheat Wizard

Nach meinen Berechnungen kostet die Hardware 30 Byte (2 für den Widerstand, 3 für das Potentiometer, 1 für seine Einstellung, 10 (zum Ändern) für das LCD und 14 für die Drähte (1 Byte pro Draht)). Dies ist jedoch nur ein Vorschlag. Außerdem gibt TIO an, dass der Code nur 331 Bytes umfasst. Gibt es einen nachgestellten Zeilenumbruch?
CalculatorFeline

@ WheatWizard das ist richtig. behoben!
Fluxa

1
Guter Punkt @CalculatorFeline, aber in diesem Fall sollten wir auch die Hardwarekosten aller anderen Antworten zählen. Möglicherweise ist mein Setup das billigste. : D
Fluxa

... D8 Es ist alles vorbei D8
CalculatorFeline

2

Python3, 99 Bytes

import time
l='La La Land'
s='\u0336'
print(l,end="\r")
time.sleep(1)
print(s.join(l)+' Moonlight')

Wenn Sie festlegen, l = 'La La Land können Sie die +sZeichen für -2 nicht vermeiden ? .
Walpen

@walpen Ich muss es zweimal benutzen, deshalb habe ich es in s gespeichert
Miguel


1

SmileBASIC, 45 Bytes

Ein Byte weniger dank 12Me21s Zaubertrick.

Soweit ich weiß, hat SB keine durchgestrichenen Zeichen, also habe ich GLINEstattdessen verwendet. Offensichtlich setzt eine übersichtliche Anzeige voraus, ACLSwenn nötig.

?"La La Land
WAIT 60GLINE.,4,79,4?" Moonlight

1

AHK, 102 Bytes

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

Ich habe ein bisschen geschummelt, um durchgestrichenen Text zu erhalten, indem ich das kombinierte Unicode-Zeichen für Overlays mit langen Strichen verwendet habe . Dies kann je nach Konfiguration zu einem merkwürdigen Erscheinungsbild führen. Der Notizblock sieht gut aus.

Der Code in Aktion


AutoHotkey ist eindeutig nicht die effizienteste Sprache dafür, aber es war eine lustige Herausforderung. Seien Sie vorsichtig, wo Sie es ausführen, da es keine eigene Anzeige erstellt und den gesamten Text des aktiven Fensters löscht.


1

Schnell, 392 Bytes

Swift + UIKit ist wirklich nicht ideal zum Golfen! Führen Sie dies in einem XCode-Bereich aus, und das Ergebnis wird im Vorschaufenster angezeigt.

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

Vorschau


Ist das l.textColor=UIColor.rednötig?
Albert Renshaw

Ansonsten scheint standardmäßig schwarzer Text auf schwarzem Hintergrund zu sein
Matt

0

Jelly , 41 Bytes

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

Funktioniert nicht mit Online-Dolmetscher.


Warum nicht? Kann Kompatibilität kostengünstig hinzugefügt werden?
CalculatorFeline

@CalculatorFeline Nein, Dennis muss Steuercodes implementieren, damit dies funktioniert, und es ist derzeit nicht seine Priorität.
Erik der Outgolfer

Können Sie einen Screenshot / ein animiertes GIF der Ausgabe geben?
28.

@ ʰᵈˑ Das könnte ich tun, obwohl es keine Garantie gibt. In der Zwischenzeit können Sie den Interpreter herunterladen und selbst testen :)
Erik the Outgolfer

0

Python (137 Bytes)

from turtle import *;import time;write("La La Land");time.sleep(1);clearscreen();write("\u0336".join("La La Land ")+" Moonlight");done()

2
Sie brauchen den Raum nach dem nicht import. Ich würde auch vorschlagen, "La La Land" als Variable zu speichern.
Weizen Zauberer

0

TI-BASIC, 57 53 Bytes

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

Beachten Sie, dass hierbei die TI-84 + CE-Funktion mit dem neuesten Betriebssystem verwendet wird, um eine Sekunde lang anzuhalten. Dadurch wird ein Synthaxfehler auf dem TI-84 + zurückgegeben. Zum Testen können Sie die Pause von 1 Sekunde auslassen, indem Sie diese Zeile entfernen. Denken Sie auch daran, zuerst Zoom 6 zu drücken, damit Sie die Standard-Fenstereinstellungen verwenden, da sonst der Zeilenbefehl nicht funktioniert.


0

SpecBAS - 58 Bytes

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

Jedes Zeichen hat eine Größe von 8 x 8 Pixel. Zeichnet also eine Linie von 0,4 bis zur relativen Position 80,4 (80 zur ersten Koordinate hinzugefügt und 0 zur zweiten, damit es auf derselben Linie bleibt).

Bildbeschreibung hier eingeben


0

OIL , 76 Bytes

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

Ersetzen Sie das durch ein Escape-Zeichen und ↩︎einen Wagenrücklauf. Da OIL keinerlei Schlafbefehle enthält, emuliere ich es mit einer Schleife, die von 89999 bis 1 herunterzählt. Auf meinem Computer dauert es ungefähr eine Sekunde, auf Ihrem jedoch möglicherweise nicht.

Die ersten 3 Zeilen werden vom Interpreter ignoriert, dann wird 4die zweite Zeile (Zeile 1; "La La Land") ausgegeben (). Die folgende Struktur ist die Schleife, die die große Zahl am Ende dekrementiert, bis sie gleich 1 ist. Am Ende drucke ich nur die ersten 3 Zeilen.


0

PHP, nicht konkurrierend (64 Bytes)

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

benutzt UTF-8: --steht fürU+0336 - aber ich bin mir ziemlich sicher, dass es nicht alleine funktioniert.

Wenn dies nicht der Fall ist, versuchen Sie ~"1I"oder ~I1anstelle von-- (+3 oder +1 Byte).

Keine Zeit, es in einer Datei zu speichern oder herauszufinden, wie meine Konsole auf UTF-8 eingestellt wird; so konnte ich keines von beiden testen; Aber wer kann: Bitte lassen Sie mich wissen, ob es sich um eine vollständige BS handelt oder nicht.


0

Powershell, 63 Bytes

Funktioniert nur in PowerShell ISE. Nicht konkurrierend, da das Durchstreichen um einen Buchstaben verschoben wird und ich es nicht reparieren kann.

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

L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Mondschein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.