5种语言,249个字节
注意:\r
和\e
是文字换行和转义字符,但\x5b
必须保持原样,否则Ruby会抱怨正则表达式中的字符类。
参加聚会有点晚了,无论如何都不是赢家,但是我开始为感恩节的挑战而设计一门多语言的游戏,觉得这可能有点晚了,所以把它变成这样吧!
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
说明
Python:True
/False
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
在这里,我们设置q
到0//1
其是0
,那么我们有一个'''
包含大部分的其他代码的字符串,存储阵列包含False
与True
和indicies 0
和1
分别输入端分配到b
(这应该是0
或1
以表示Falsy
和Truthy
),那么print
所述b
的个索引a
,表示False
或True
。
Ruby:Vrai
/Faux
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
与Python脚本一样,我们将变量设置为q
,但在Ruby中将其设置为0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord
,因为Ruby将其分解0/
为“零除法”,随后将其分解为“ /
正则表达式文字开始”。使用此文字,我可以隐藏PHP代码并开始使用Python的'''
。我们必须添加,.to_s.ord
因为正确的操作数/
必须是Fixnum
。在此之后,我们定义一个函数input()
和变量,True
并False
包含它们的法语对应项,最后开始一个字符串'
,该字符串继续到下一行。最后,我们创建一个a
包含的数组,"Vrai"
并"Faux"
使用input()
ed数字0
或进行选择1
。
Perl:Waar
/Vals
'0//1;\'\'\'<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q}+q{0;True="Vrai";False="Faux";\'';sub a{<><1?Vals:Waar}'
input=prompt;print=alert;True="Vero";False="Falso"//\'#\'\'\'
a=[False,True];b=input();1'+1;print(a[b])
在Perl中q=..=
,q+...+
和q-...-
块使用不常见的分隔符来引用文字,在上面的代码中,我用替换了它们'...'
。大部分代码都包含在文字字符串中,但是我们确实定义了sub a
(包含<><
!)来检查是否STDIN
小于1
,返回Waar
or Vals
。该print(a[b])
实际上print
在叫的结果sub
a
与和论证[b]
它是一个包含裸字的数组引用b
。
JavaScript:Vero
/Falso
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
第一行是由部门主要注释掉0//1
(//
在JavaScript中注释行),所以我们只设置q
到0
。与映射JS功能到其的Python名称和设置变量的下一行的交易True
和False
是意大利串,最后我们执行相同Ruby代码,设置于意大利单词的数组,并使用选择input
的0
或1
。
PHP:Ekte
/Falsk
die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));
由于PHP仅执行<?...?>
其他所有内容之间的代码,因此我们的代码仅打印换行符(将我们返回到当前行的开头)和ANSI转义序列以清除到当前末尾行,后接Ekte
或,Falsk
取决于输入的char(0
或1
)是真还是假。