制造商已经被推广为一种游戏,但是我们代码玩家可以看到它的真实面目:一种二维编程语言。Manufactoria编程语言基于一个队列,其中包含了一系列彩色标记。指令指针使用传送带在游戏板上移动,它遇到了从队列中读取和写入队列的一系列写入器和分支。
语言很容易理解,所以最快的学习方法就是玩游戏的前几个层次(链接在上面)。
您的挑战是创建一个程序,它可以在最短的时间内将一个数字除以另一个数字。
程序的输入将是一串X蓝色标记,后面是Y红色标记。所需的输出将是一串长度为X/Y的红色标记。
将使用的游戏板可在此正式竞赛级别中找到:
http://pleasingfungus.com/Manufactoria/?ctm=Divide_和_征服;输入_将要_be_X_蓝调_关注_通过_是_红魔,_输出_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbrrrr:rrr|bbbbbbbbbbbbrrr:rrrr|bbbbbbbbbrrr:rrr|bbbbbbbbbbrr:rrrrr;13;3;0
它是13x13 (最大尺寸),并预先配备了正确的测试(请参阅评分部分)。
你的项目的分数是程序在官方比赛级别上通过所有测试所需时间的总和。总时间是给出的水平完整的屏幕。
在运行测试时,您很可能必须使用左下角的50x加速滑块来快速接收结果(时间加速不会影响分数)。
下面列出了测试中涉及的除法问题:
6/2 = 3
3/3 = 1
4/1 = 4
0/1 = 0
12/4 = 3
12/3 = 4
9/3 = 3
10/2 = 512/3=4
in: BBBBBBBBBBBBRRR
out: RRRR
10/2=5
in: BBBBBBBBBBRR
out: RRRRR
9/3=3
in: BBBBBBBBBRRR
out: RRR
0/1=0
in: R
out: 发布于 2013-06-13 04:01:48
最好是特例除以1,2,3,4,使它更快。

http://pleasingfungus.com/Manufactoria/?lvl=34&code=c9:13f2;c10:13f2;c11:13f2;p12:2f7;y13:2f0;p11:2f0;c11:4f3;c10:3f0;p11:5f0;c10:5f0;c9:5f0;c11:6f3;p11:7f0;c10:7f0;p11:3f0;r10:6f1;q8:5f4;q8:6f1;q9:6f1;c7:5f3;c7:6f3;q10:2f0;r10:1f3;r10:4f1;q9:3f4;q9:4f1;c9:2f3;c8:3f3;c8:4f3;r10:8f1;q10:9f6;q9:9f1;q9:8f4;q9:7f4;c8:8f3;c8:9f3;c8:10f3;c8:11f3;c8:12f3;c8:13f2;c7:7f2;c8:7f3;r11:9f3;r11:10f0;r10:10f0;r9:10f3;r9:11f2;p11:11f6;r11:12f1;g11:8f3;b10:11f2;c16:10f2;q17:10f6;q17:11f3;g18:11f0;c12:11f1;c12:10f2;c13:10f2;c14:10f2;c15:10f2;c17:12f0;p16:12f4;c16:11f3;c16:13f1;q15:12f0;r15:13f1;c14:12f3;c14:13f0;c13:13f0;q17:7f6;q17:9f1;q18:9f6;q18:8f5;q17:6f1;g16:6f2;y18:6f0;p17:5f5;r18:5f0;c16:5f0;p15:5f0;r15:6f3;b15:7f2;p16:7f6;r16:8f1;q14:5f0;y14:4f3;g14:6f1;p13:5f0;p13:6f0;p13:7f0;p13:8f0;p13:9f1;g12:9f0;c17:8f1;&ctm=Divide_和_征服;输入_将要_be_X_蓝调_关注_通过_是_红魔,_输出_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbrrrr:rrr|bbbbbbbbbbbbrrr:rrrr|bbbbbbbbbrrr:rrr|bbbbbbbbbbrr:rrrrr;13;3;0;
发布于 2013-06-12 06:48:45

用重复减法除法。在R中使用Y来跟踪我们到目前为止减去了多少除数。使用Gs来计算商。
例如,12/4的每个外部循环开始时(在初始G写入器之后)的状态是:
BBBBBBBBBBBB RRRR G
BBBBBBBB RRRR GG
BBBB RRRR GGG
RRRR GGGG当没有B的时候,左下角的小工具就会产生R,然后输出#G-1Rs。
内环一次剥离一个B,并使用Y跟踪位置。从外环开始:
BBBBBBBB RRRR GG
BBBBBBB RYRRR GG
BBBBBB RRYRR GG
BBBBB RRRYR GG
BBBB RRRR GG内环是右下角的3x4框。其余部分的布局可能会有所改进,但内部循环很紧。
http://pleasingfungus.com/Manufactoria/?lvl=34&code=c11:13f2;g12:2f3;p12:3f7;c13:3f3;p13:4f3;b12:4f2;r14:4f3;p14:7f7;r13:7f2;q14:8f7;g13:8f2;p14:9f4;r13:10f2;p14:10f7;b15:10f0;q14:11f7;p15:11f3;r16:11f1;p15:8f0;r15:9f1;c16:8f0;c13:2f0;c15:2f0;c16:2f0;c17:2f0;c11:3f3;c11:4f3;c11:6f3;c11:7f3;c11:8f3;c11:9f3;c11:5f3;p11:10f7;q11:11f6;q11:12f7;r10:12f2;c10:10f2;q16:10f5;y14:6f3;q14:5f3;g15:5f1;c15:4f1;c15:3f1;c17:9f1;c17:8f1;c17:7f1;c17:6f1;c17:5f1;c17:4f1;c17:3f1;y16:9f1;g17:10f1;q14:2f4;g14:1f3;&ctm=Divide_和_征服;输入_将要_be_X_蓝调_关注_通过_是_红魔,_输出_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbrrrr:rrr|bbbbbbbbbbbbrrr:rrrr|bbbbbbbbbrrr:rrr|bbbbbbbbbbrr:rrrrr;13;3;0;
发布于 2013-06-14 16:33:18
一种完全不同的方法--减少零件,但速度要慢得多。

http://pleasingfungus.com/Manufactoria/?lvl=34&code=p12:2f3;g11:2f3;b11:3f3;c12:4f2;c11:4f2;c13:2f3;c13:3f3;c13:4f3;c12:5f3;c11:5f1;c10:5f2;c9:8f3;c9:9f3;c10:11f2;c11:11f1;c11:9f1;c11:10f1;c11:12f2;c13:8f0;c11:8f0;c13:7f0;c14:7f0;c14:6f3;c12:7f3;y14:5f0;y10:6f1;y11:7f1;g12:6f2;g9:11f2;g10:10f0;q9:10f3;q13:5f7;q13:6f7;b11:6f1;b10:9f1;p10:7f1;r9:7f2;p10:8f4;p12:8f3;q12:12f3;r13:12f0;r8:10f2;c12:9f3;c12:10f3;c12:11f3;&ctm=Divide_和_征服;输入_将要_be_X_蓝调_关注_通过_是_红魔,_输出_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbrrrr:rrr|bbbbbbbbbbbbrrr:rrrr|bbbbbbbbbrrr:rrr|bbbbbbbbbbrr:rrrrr;13;3;0;
https://codegolf.stackexchange.com/questions/11848
复制相似问题