Answers:
“XSøjĠḌ⁻Ça»Œts⁵µṀȮ⁸œS“Æɓ9m“ɓm”ż
用xterm和测试LANG=en_US
。由于多种原因,无法在TIO上运行。
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..
0d
(<CR>
)用于在打印La La Land之后返回到衬纸的开头。
9b 39 6d
(<CSI> 9 m
)用于在第二次打印La La Land之前激活删除线文本。
9b 6d
(<CSI> m
)用于将前景和背景重置为默认模式,从而在打印Moonlight之前禁用删除线。
“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.
gs
睡一秒钟。
使用CSS动画。仅在Firefox和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}
@keyframes
声明之一放在最后,然后删除两个右花括号。
}
缺少任何一项,Firefox将拒绝应用规则,因此很遗憾,此操作无法完成。
可悲的是,似乎没有一种有效的方法可以重用O.innerHTML
...
setTimeout('a=O.innerHTML;a=a.strike()+" Moonlight"',1e3)
工作吗?
a
那里不会修改O.innerHTML
。
@Stewie节省了15个字节
text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')
虽然该演示显示了两个单独的图,但是在MATLAB的桌面版本中运行时,它显示了第一个图,等待1秒钟,然后将第二个字符串添加到同一图。
由于Octave不支持删除线文本,因此,我选择axes
在图形中的对象中显示文本,并通过'--------'
在初始文本(@Stewie的最初想法)上方显示来显示“删除线” 。以前,我实际上已经绘制了一个line
要穿透的对象'La La Land'
text(0,.5,'La La Land');pause(1);text(0,.5,'---------- Moonlight')
。
'-'*8+
代替破折号吗?
.
)
-4分,感谢赖利
echo La La Land;sleep 1;echo -e "\r\e[9mLa La Land\e[0m Moonlight"
学分西尔万·皮诺的回答上AskUbuntu为删除线
\r
第二个echo
而不是来节省一些字节clear
。同样,您不需要在第二个之前的空格echo
。
clear;
应该先走。并且您在中有不必要的空间; echo
。
\e[A
,因此clear
不需要。有关更多信息,请见我。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"
'La La Land'tDlY.ttv45HY(`t@Y)' Moonlight'hXxDT
由于MATL不具有控制代码或内容格式的支持,这种解决方案只是交替之间'La La Land'
,并'-----------'
尽可能快地模拟删除线的文本。
说明
'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
printf ♪La\ La\ Land›%b 9m\\0 m\ Moonlight|pv -0L1
♪
表示回车符(0x0d)和›
CSI字节(0x9b)。
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
printf重复其格式字符串多次以用尽其其他参数。由于发生了一次%b
和两个自变量(9m\\0
和m\ Moonlight
),它将产生以下字节流。
\rLa La Land\x9b9m\0\rLa La Land\x9bm Moonlight
这将执行以下操作。
\r
将光标移到该行的开头。
La La Land
逐字打印。
\x9b9m
激活删除线文本。
\0
为设置行尾标记pv -0
。
\rLa La Land
和以前一样。
\x9bm
将前景和背景重置为默认模式,以禁用删除线。
Moonlight
逐字打印。
最后,pv -0L1
每秒打印一条以零结尾的行,从而引入所需的延迟。
♪
还是对您的高尔夫运动有所帮助,还是您特别想在La La Land中使用它?我喜欢!
♪
有时它被风格化的事实只是一个快乐的巧合。
pv
而不是sleep
像其他所有人一样很漂亮。
pv
是我从链接的Bash答案中得出的,所以我不能为此而真正功劳。
La La Land<?=sleep(1)?:"\rL̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight";
删除线使用UTF-8字符U + 0336。
编辑:保存17字节的建议@Titus评论
sleep
总是返回0;因此您可以做到sleep(1)?:" ̶L̶a̶ ̶L̶a̶ ̶L̶a̶n̶d̶ Moonlight"
(-3个字节)。\r
而不是\033[10D
保存6个字节,并将其包含在最后的字符串中可以保存另外4个字节
La La Land<?=
而不是<?="La La Land",
节省了另外3个字节。
现在执行删除线操作。
K“ La La Land” .d_1“ \ 033c” + j“ \ u0336” K“月光
"
在前面加+1。
<exmpty line>
啊 我会建议<pre>
标签。
La La Land<script>setTimeout(function(){document.write("<s>La La Land</s> Moonlight")},1e3)</script>
编辑:根据Digital Trauma的评论保存了5个字节
单独使用sed无法完成两个打印语句之间的等待,因此我称之为sleep 1
。可以使用e
命令(是GNU扩展名)从sed进行系统调用。
s:$:La La Land:p
esleep 1
s:.:&̶:g
s:.*:\c[[A& Moonlight:
要创建删除线文本(第3行),将“组合长笔画叠加层” U + 0336附加到每个字符。之后,我将光标向上移动1行,使用所谓的ANSI Escape Sequences有效地替换了打印新内容时的旧文本。终端将它们解释为特殊格式命令。您可以在此处找到有关它们的更多信息。
说明:
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.
\c
,真好!至于那个特殊的unicode,这是我第一次听说,但是确实有效。在此页上打印时,它与命令s
分隔符组合在一起:
,因此乍一看有点奇怪。
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");}
我对这个第一个答案有点作弊,因为我使用删除线unicode。
说明:
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
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();}
由于Java控制台没有像删除线这样的标记,因此您必须使用Java AWT。而且,如果您认为Java Console已经很冗长,那就更糟了(我知道,我知道,大多数人甚至都无法想象Java 7会更糟。)
说明:
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
输出gif:
String[] a
并1e3
代替它使用1000
1e3
,那是一倍,并且Thread.sleep
期望很长。1000
比短(long)1e3
。:)
Swing
,不是Spring
,不是吗?我差点心脏病发作!在代码高尔夫球中弹奏……此外,要节省字节,您可以使用AWT代替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();}
不竞争,只是为了好玩。
#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);}}
材料清单:
#include
Swift + UIKit确实不是打高尔夫球的理想选择!在XCode操场上运行它,结果将显示在预览窗格中。
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
l.textColor=UIColor.red
必要吗?