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,返回Waaror 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)是真还是假。