乔是您的普通BF开发人员。当他接到老板打来的电话时,他即将把代码更改检入到存储库中。“乔!新客户的机器坏了!动脑筋的解释器在程序执行之前将所有单元设置为随机值。没有时间修复它,您的代码将不得不处理它。” Joe对此考虑不多,当老板再次打断他时,他打算编写一个程序以将前一百万个单元格设置为零-“ ...而且不要考虑使用蛮力,代码必须尽可能地小。” 现在您必须帮助可怜的乔!
技术指标
- 您将获得一些有效的Brainfuck代码作为输入
- 然后,您的程序将修改代码,以便它可以在随机的Brainfuck解释器上运行
- 这意味着在程序执行之前,可以将单元格设置为任何值。
- 无论初始条件如何,新程序都应具有完全相同的行为。
- 解释器的最大像元值为255(带有换行符)和无限长的磁带。
计分
您的分数是编译器大小(以字节为单位)加上测试用例大小总和的10倍。最低分显然是获胜的。为了减轻测试用例的优化,如果我有任何怀疑,我保留更改测试用例的权利,并且可能会在选择获胜者之前这样做。
测试用例
(我从esolangs页面和此网页获得了这些信息:http : //www.hevanet.com/cristofd/brainfuck/)。最后还要感谢@Sparr。
- 你好,世界:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- 反向输入:
>,[>,]<[.<]
- 二的幂(无限流):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- 10000以下的方块:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- 斐波那契流:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- 输入之前的ASCII序列:(
,[.[>+<-]>-]
这需要根据输入改变单元格编号)
评论不作进一步讨论;此对话已转移至聊天。
—
马丁·恩德