现在是时候炫耀您编写不良代码的能力了。我正在尝试一种新的编程难题,我认为与欠缺C竞赛最相似。主要的区别是这并不那么有害:它只是一些很好的清洁乐趣。难题的目标是将尽可能多的错误打包到一个程序中。这项竞赛的获胜者是每个角色中漏洞最多的程序编写者。
为了避免大量的评论要求澄清,我现在应该定义我认为合格的错误。
首先,错误不是错误。如果是解释器可以将其检测为错误的问题(例如,不匹配的分隔符,格式错误的语法,访问空对象的属性等),或者阻止了程序的执行或继续,则不是一个错误。否则,您可以输入四个字符,解释器可以列出八个语法错误,并且可以声明错误字符比率为2。
其次,该错误一定不能明显是错误的,并且该错误不是复活节彩蛋。这当然是一个主观标准,但我认为对于此类竞赛至关重要。这意味着您不能拥有以明显的方式专门处理代码的条件代码。(阅读:使用图林坑语言,因为没有人会知道其中的区别)。
第三,该错误必须是合理的。就像上面的代码一样,这是主观的,但是该错误必须看起来像是由一个不那么细致的人,或者可能是一个无知的人,或者刚刚犯错的人写的。例如,这包括一字不漏的错误或有效且看起来正确但会导致不良行为的语法(例如,使用方括号而不是括号)。
该错误可能导致程序发生任何形式的不良行为,包括但不限于某些特殊情况下的不良输出,基于看似无关的事物具有不同的行为(例如,输出取决于当前时间是否结束而显示不同) (以奇数或偶数秒为单位),内存泄漏,数据丢失等。
示例问题:
制作一个程序,以其数值的升序显示所有ASCII字符。
示例答案:
Brainf ***,5个字符,1个错误,0.2个错误/字符的比率
+[+.]
错误:不显示1的ASCII字符。可以通过更改为来修复.+[.+]
。
好的,我想您现在应该已经掌握了,这是您的难题:
解码凯撒密码并按字母顺序对单词排序
通过采用一系列字母并将它们在字母表中移动n个字母来创建凯撒密码。如果一直到字母的开头或结尾,则A在Z之后,Z在A之后。例如:
Mannequin
Nboofrvjo //Shifted over 1 or -25
Wkxxoaesx //Shifted over 10 -16
Ftggxjnbg //Shifted over -7 or 19
系统将为您提供两个输入(您可以在合理范围内获得输入,但对您而言最方便)。第一个输入是单词,第二个输入是它移过来的值。您的任务是输出已解码的单词,然后按字母顺序对已解码的单词进行输出。
示例(对坏男孩没有冒犯性,这只是一个示例):
首先输入:gtdx wjbfwiji。ljy Gfi hfssty
第二输入:5
第一输出:男孩得到奖励。变坏不能
第二输出:坏男孩无法得到回报。
祝好运!