大约一年前,2015年12月31日,我想到:
我们应该制作一个时间胶囊线。每个人都可以添加一个角色,接下来的新年中,我们将看到谁可以用当时存在的esolang在所有角色中做出最好的程序。
Doorknob亲切地从PPCG社区中收集了角色,并确保它们安全了一年。
多达74人参加了比赛,所以我们有74个 可打印的ASCII字符供您玩耍!
以下是2016年时间胶囊字符串的74个字符,按提交顺序排列:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
以下是2016年时间胶囊字符串的74个字符,按ASCII顺序排列(注意前导空格):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
协作并不是很多,但在这里,我们就像是一个挑战。
挑战
为了确定时间胶囊字符串哪种语言“最好”,我们将面临6个(对于201 6)挑战,难度增加,其中每个挑战都必须使用74个时间胶囊字符中的一个子集。
面临6个不同的挑战有助于确保更多的语言可以竞争,但是只有最好的语言才能回答所有这些问题并获得高分。
得分:
- 根据使用了多少个角色,每个挑战的得分从0到74。
- 分数越高越好。
- 如果您的语言无法完成一项挑战,那么您对该挑战的评分为0。
- 挑战的任何非空子集都可以完成。
- 您的最终分数是所有6个挑战的分数之和。
- 最好的最终分数是6×74或444。
挑战
1.运行
如果某种语言的代码不能在一开始就运行,那么它将根本无能为力。
编写可能运行时间最长的完整程序(记住,仅使用74个时间胶囊字符),而不会出现编译时或运行时错误。
程序做什么无关紧要,它是否有输入/输出或进入无限循环都无关紧要,只重要的是程序运行没有错误。(警告是可以的,由于用户输入错误而引起的错误也可以。)
允许注释,因此可以很简单
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
在Python中获得74分。
(如果这是您的语言可以完成的唯一挑战,请不要害怕回答,但是也不要期望获得很多选票。)
分数=程序长度(程序越长越好)
2.输入/输出
没有输入或输出形式的语言几乎和不能运行的语言一样没有用。
给定一个可打印的ASCII由字符!
(0x33)至}
(0x7D)包容,输出可打印的ASCII字符之前和之后。
输出可以是两个长度的字符串或列表,也可以是由空格或换行符分隔的字符。
例如,如果输入为}
输出,则可能为|~
或["|", "~"]
或| ~
或|\n~
。
同样, "
是的输出!
,AC
也是的输出B
。
分数= 74-程序长度(程序越短越好)
3.可分支性
条件转换通常是图灵完整性的必要条件,而图灵完整性通常是一种有用的语言的要求。
给定一个正整数,如果以十进制数字结尾,16
则将a更改6
为a 7
并输出结果;否则,输出不变。如果愿意,可以使用字符串作为输入/输出。
例子:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
分数= 74-程序长度(程序越短越好)
4.循环性
不能循环的语言会产生重复的代码,如此乏味,您需要花一段时间来暂停编程。
给定一个正整数,输出该边长的ASCII艺术方块,该方块填充有同心的较小方块的图案,该图案在任意两个不同的可打印ASCII字符之间交替。对于不同的输入,它们不必是相同的两个字符。
例如:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
分数= 74-程序长度(程序越短越好)
5.数学
对于数字和数学不好的语言可能也适合人文专业。
不输入任何内容,而是以任何顺序输出2016年的72个整数除数,即正数和负数。可以以合理的方式将输出格式化为字符串或列表。
例:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
分数= 74-程序长度(程序越短越好)
6.神秘主义
(不,不是那样。)我们在PPCG上喜欢我们神秘的东西,而奎因就是一个很好的例子。
根据通常的奎因规则,写下尽可能长的奎因。quine是一个不需输入即可输出的程序。
分数=程序长度(程序越长越好)
具体规则
- 在这6个挑战中的每一个中,您的程序都必须是按您喜欢的方式重新排列的74个时间胶囊字符的子集。它可能是一个空子集,也可能是一个不正确的子集,因此每个程序最多只能包含0个字符,最多可以包含74个字符。
- 输入/输出/代码末尾的单个尾随换行符在任何地方都可以,因为某些语言需要这样做,否则就很难避免。
- 除非另有说明,否则根据我们的默认设置,每个挑战都可以作为功能或完整程序来完成。
- 所有挑战都必须用相同的语言完成。
- 您必须使用地球上任何地方在 2017年之前制作的语言(或一种语言的版本)。
- 无论您是否在时间胶囊中添加了字符,欢迎任何人回答。
在您自己的挑战中随意使用2016年时间胶囊角色。
6×74 or 444
是不可能的,因为那将意味着空程序,其行为会有所不同。因此,442是实际的最小值,因为这意味着3个输入记录程序中的两个都有一个字符