Questions tagged «manufactoria»

3
Manufactoria:生成最慢的接收程序
编写一个Manufactoria程序,该程序将接受空的输入磁带。但是请不要快做!我的意思是,快速编写程序,但不要让它快速运行。程序越慢,越好,只要它最终终止即可。下面的示例程序采用3:51(模拟器报告的“总时间”)。 http://pleasingfungus.com/Manufactoria/?lvl=36&code=g12:5f3;r9:8f1;p12:9f3;c13:9f0;r11:9f0;r10:9f0;r9:9f1;b11:8f0;b10:8f1 ; r9:7f2; c10:7f2; c11:7f2; c12:7f3; q12:8f3; y13:8f2; y14:8f2; y15:8f1; y15:7f0; y14:7f0; y13:7f0; g12:6f3;&ctm = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ; 您的程序从空磁带开始。它必须乱涂一点,但最终会到达输出平方。如果需要,可以将数据保留在磁带上。7x7 Manufactoria板上最慢的程序胜出! 您的右箭头键是您的朋友,它可以加快模拟器的速度。 破坏模拟器的奖励积分!

1
Manufactoria中的原始性测试
背景 Manufactoria是一款有关编程的游戏。玩家必须使用一种二维编程语言来完成任务。如果您从未听说过,最简单的学习方法就是尝试游戏的前几个级别。 挑战 您面临的挑战是创建一个测试数字素数的程序。 输入将是队列中的一系列N个蓝色标记。如果N为质数,则程序应接受它(将机器人移至终点)。如果N是合成的,则您的程序应拒绝它(将它放在地板上的某个地方)。 提交选项 由于这是比典型的工厂挑战赛更为复杂的挑战,因此我决定允许更多方式提交您的答案。 香草 我创建了一个13x13的自定义级别来构建和测试提交。定制测试级别如下。 13x13自定义级别 游戏仅在自定义级别上允许8个测试用例,但从理论上讲,您的创作应能够处理任何自然数N,仅受可用内存的限制。 仅供参考,自定义级别提供的测试用例如下: 1 -> reject 2 -> accept 4 -> reject 5 -> accept 7 -> accept 9 -> reject 11-> accept 15-> reject 扩展网格 有些用户可能想要的空间比13x13的网格还多。以下是通过更改URL中的数字创建的游戏内15x15自定义级别的链接: 15x15自定义级别 可悲的是,较大的自定义级别不起作用,因为无法访问其他单元。 伊索朗工厂 Manufactoria已适应基于ASCII的语言。如果您想采用其他方法来设计/测试您的作品,或者无法将最终解决方案安装到游戏板上,则可以使用此esolang。您可以在此处找到有关此esolang的信息: 峨factor工厂 esolang与实际游戏之间存在一些差异。例如,传送带交叉口的处理方式有所不同。尝试避免利用这些差异。 更快的测试方法 当涉及需要数千步才能完成的程序时,游戏速度非常慢。我的概念验证解决方案花了28042步来拒绝15。即使在游戏中以50倍加速时,这也花了太长时间。 我发现这个网站很有帮助。只需将链接复制粘贴到您的答案,就可以使用特定的输入来测试您的答案。28042步骤过程耗时不到一秒钟。 需要注意的一件事是,即使您的计算机正常工作,它也会经常说类似“不正确地接受”之类的内容。这是因为该网页仅知道测试用例。例如,它将说我的解决方案“错误地接受了”数字3,即使我的机器实际上是正确的。 如何取胜 评分标准是零件数(占用的单元)。这是代码高尔夫球,因此提交最少的部分将获胜。 对于那些感兴趣的人,我的基准解决方案包含96个零件,可安装在13x13网格上。寻找更好的算法可能会带来巨大的改进,因为我知道我使用了次优算法。

4
Manufactoria中的Mod 7
一个简单的制造挑战。计算输入模7。输入将采用大端二进制(蓝色= 1,红色= 0)。输出应采用相同的格式。 提供了测试用例。最小的零件数获胜。 http://pleasingfungus.com/Manufactoria/?ctm=Mod7;输入:_binary_number_big_endian._输出:_that_binary_number_mod_7; bbb:| brrr:b | brrrr:br | bb:bb | bbrrb:brr | brrrrb:brb | bbrb:bbr; 13; 3; 1 ; (如果输入mod 7为0,则不输出任何内容。)

3
快速分裂制造工厂
背景 Manufactoria已经作为一种游戏进行了营销,但是我们的代码高尔夫球手可以真正地看到它:二维编程语言。Manufactoria编程语言基于单个队列,其中包含一系列彩色标记。指令指针使用传送带在游戏板上移动,并且遇到一系列读写器,它们在队列中进行读取和写入。 该语言非常容易理解,因此学习该语言的最快方法是玩游戏的前几个级别(上面有链接)。 挑战 您面临的挑战是创建一个可以在最短时间内将一个数除以另一个数的程序。 程序的输入将是一串X蓝色标记,后跟Y红色标记。所需的输出将是一串红色标记,长度为X / Y。 在此正式比赛级别中找到了要使用的游戏板: http://pleasingfungus.com/Manufactoria/?ctm=Divide_and_Conquer;Input_will_be_X_blues_followed_by_Y_reds,_output_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbbbbbbbbbbbbbbbrr rrrrr; 13; 3; 0 它是13x13(最大尺寸),并且已预先配备了正确的测试(请参阅评分部分)。 计分 您的课程分数是该课程通过官方竞赛级别的所有测试所花费的总时间。总时间在级别完成屏幕上给出。 在运行测试时,您很可能必须使用左下角的50倍加速滑块才能快速接收结果(时间加速不会影响得分)。 这是测试中涉及的除法问题的列表: 6/2 = 3 3/3 = 1 4/1 = 4 0/1 = 0 12/4 = 3 12/3 = 4 9/3 = 3 10/2 = 5 示例I / O 12/3=4 in: BBBBBBBBBBBBRRR out: ...

5
返回Manufactoria中输入的最后一种颜色
这个难题是我对Manufactoria系列挑战中的下一个难题。 背景 Manufactoria是一种游戏/二维编程语言。播放器必须创建将操纵队列以达到所需输出的程序。它很容易学习,但很难掌握,因此很容易造成各种各样的挑战。如果您不知道我在说什么,我建议您玩游戏的前几个教程级别。 挑战 您的挑战是创建一台机器,该机器将返回输入字符串的最后一个元素。为了使其更具挑战性,输入字符串可以是所有四种颜色的任意组合。 可在此处找到要使用的官方自定义级别: http://pleasingfungus.com/Manufactoria/?ctm=最后一行r; 13; 3; 0 ; 本周的挑战主要集中在压缩的概念上。我选择了这个挑战,需要大面积的传送带。所有四种颜色都出现在输入中的事实意味着很难存储信息。 尽管我没有尝试压缩,但我的第一个工作原型具有114个零件,可放入13x13的空间,几乎没有剩余空间。 计分 这项挑战的目标是尽可能使用一些零件。得分是放置的零件数,得分最低者获胜。 尽管只有8个测试用例,但是您的创作理论上应该能够在任何测试用例下运行。提供的测试用例用于调试目的。 例子 in: byrgyrbyrrgry out: y in: ggryybrryr out: r in: #don't you love degenerate cases? out: in: gyrbrygbrygbyrb out: b
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.