1 2
5 6
Banned User
Joined: 6/18/2010
Posts: 183
flagitious wrote:
BTW what was your first challenge (I'd probably want to start with it)?
Hah, your latest Ophanim algorithm shows you've already solved it:
?ctm=Machine_Guns!;Convert_a_binary_string_to_a_yellow_unary_string!;:|b:y|br:yy|brbb:yyyyyyyyyyy|bbrrr:yyyyyyyyyyyyyyyyyyyyyyyy;13;3;1;
But I used it as a component in Roboalchemist! so I proposed it first. It turns out converting numbers to unary first leads to very simple and natural (if long-winded) processing devices ;)
Player (201)
Joined: 7/6/2004
Posts: 511
Pointless Boy, ah I see that is a good challenge (I was wondering why it wasn't a built in one) RandomPie: Wow even though I know the algorithm used I already can't make any sense out of that. Have been tweaking it though, got it down to 34 ?lvl=30&code=c10:4f3;y10:5f3;c10:6f2;r10:8f2;c10:9f3;r11:3f2;c11:4f0;y11:5f0;q11:6f6;c11:7f3;p11:8f7;q11:9f7;p12:3f7;q12:4f5;c12:5f1;i12:6f3;y12:7f1;b12:8f0;g12:9f2;b13:3f0;g13:4f0;c13:5f0;p13:6f4;c13:7f0;g13:8f1;q13:9f5;y12:2f3;q10:11f4;q11:11f2;c12:12f3;q10:10f3;q11:12f3;g11:10f3;y10:12f1; Minor tweaks may get 1 or 2 more less, but there still might be some big ways to save on the part that loops through which thing to convert to unary. Edit: oops was looking at wrong tab (it was someones solution to another level, no wonder it didn't make any sense)
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Here's a custom level that's harder than it might first appear, but still very doable:
http://pleasingfungus.com/?ctm=Robo-Tumbler!;OUTPUT:_Replace_R,Y,G,B_with_Y,G,B,R_respectively!_(Input_always__alternates);ry:yg|yg:gb|gb:br|br:ry|rybgbyr:ygrbrgy|rygbrygbrygb:ygbrygbrygbr|byrygbybrygbgy:rgygbrgrygbrbg|:;13;3;0;
"Input always alternates" means only that you may assume that the input does not contain any color twice in a row, although it is still allowed to begin and end with the same color. Also, apparently the game lets you increase the board dimensions 2 past the usual maximum on custom levels (to 15x15) but I wonder if that's enough for this:
http://pleasingfungus.com/?ctm=Manufactorial!;OUTPUT:_With_blue_as_1_and_red_as_0,_output_the_factorial_of_the_number!;r:b|b:b|br:br|bb:bbr|brr:bbrrr|brb:bbbbrrr|bbr:brbbrbrrrr|bbb:brrbbbrbbrrrr;15;3;1;
Banned User
Joined: 6/18/2010
Posts: 183
nitsuja wrote:
Also, apparently the game lets you increase the board dimensions 2 past the usual maximum on custom levels (to 15x15) but I wonder if that's enough for this:
http://pleasingfungus.com/?ctm=Manufactorial!;OUTPUT:_With_blue_as_1_and_red_as_0,_output_the_factorial_of_the_number!;r:b|b:b|br:br|bb:bbr|brr:bbrrr|brb:bbbbrrr|bbr:brbbrbrrrr|bbb:brrbbbrbbrrrr;15;3;1;
I doubt I'm ever going to try to make it, but I'm fairly confident it's possible. Perhaps you should lead people on a logical progression of difficulty by starting them out with:
http://pleasingfungus.com/?ctm=Roborabbits!;OUTPUT:_Read_the_tape_as_two_numbers,_A_and_B,_split_by_a_green:_output_A_*_B!;bgbrb:brb|bbbgr:r|brgbbrb:bbrbr|brbgbb:bbbb|brrgbrbr:brbrrr;15;3;1;
Of course, there's a factorial algorithm by Moessner that uses only additions, so maybe a multiplication device isn't needed ... Anyway, here are some new challenges:
http://pleasingfungus.com/?ctm=Roboreligion!;OUTPUT:_Given_any_input,_output_RGYB!;:rgyb|bbrb:rgyb|yygyr:rgyb|brygbryg:rgyb|bbyygyb:rgyb|rgrbrgbr:rgyb|yrbyyrybr:rgyb;13;3;0;
http://pleasingfungus.com/?ctm=Robowitness!;Read_the_tape_as_two_numbers,_A_and_B,_split_by_a_green,_ACCEPT_if_A_=_0_MOD_B!;brbgb:*|bbgbrbb:x|brrgbr:*|brbgbb:x|brrbgbb:x|bbbgbbb:*|bbbgbrrb:*|bbrrbgbrb:*;13;3;1;
upthorn
He/Him
Emulator Coder, Active player (392)
Joined: 3/24/2006
Posts: 1802
Pointless Boy wrote:
http://pleasingfungus.com/?ctm=Roboreligion!;OUTPUT:_Given_any_input,_output_RGYB!;:rgyb|bbrb:rgyb|yygyr:rgyb|brygbryg:rgyb|bbyygyb:rgyb|rgrbrgbr:rgyb|yrbyyrybr:rgyb;13;3;0;
This one is quite easy, here's an unoptimized solution in 17 pieces and 1:29
http://pleasingfungus.com/?lvl=32&code=r12:9f3;g12:10f3;y12:11f3;b12:12f3;c11:2f3;q11:3f2;c11:4f1;q12:2f3;p12:3f3;c12:4f3;c13:2f3;q13:3f0;c13:4f1;c12:5f3;c12:6f3;c12:7f3;c12:8f3;&ctm=Roboreligion!;OUTPUT:_Given_any_input,_output_RGYB!;:rgyb|bbrb:rgyb|yygyr:rgyb|brygbryg:rgyb|bbyygyb:rgyb|rgrbrgbr:rgyb|yrbyyrybr:rgyb;13;3;0;
Your other challenge is misstated, it should be "accept if A mod B = 0". "Accept if A = 0 Mod B" should mean you accept only if A is equal to 0. I hope this does not come off as pedantic, because "X % Y == 0" and "X == 0 % Y" are very different conditions.
How fleeting are all human passions compared with the massive continuity of ducks.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Pointless Boy wrote:
http://pleasingfungus.com/?ctm=Roboreligion!;
15 parts, 1:47 ― http://bisqwit.iki.fi/kala/snap/manufactoria-roboreligion-machine.gif 38 parts, 1:15, below
Banned User
Joined: 6/18/2010
Posts: 183
upthorn wrote:
Your other challenge is misstated, it should be "accept if A mod B = 0". "Accept if A = 0 Mod B" should mean you accept only if A is equal to 0. I hope this does not come off as pedantic, because "X % Y == 0" and "X == 0 % Y" are very different conditions.
A combination of things are in play, here. I used shorthand for "A ≡ 0 (mod B)" and you assumed I meant MOD to be an operator. Neither of us is wrong, really. Simplest would have been to say A is a multiple of B, but I ran out of textspace and I didn't want to change the Manufactoria author's preamble, to maintain flavor. Anyway, naturally following Robowitness! comes:
http://pleasingfungus.com/?ctm=Robodetectives!;ACCEPT:_With_blue_as_1_and_red_as_0,_accept_prime_binary_strings!;br:*|bb:*|bbr:x|brbb:*|bbbb:x|bbbbb:*|brrrrb:x|brbrbrb:x;15;3;1;
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Primality test. I don't even want to try it...
Joined: 10/20/2006
Posts: 1248
Here is my solution to Robomecha! before I knew about bridges nor about flipping pieces, lol.
nitsuja wrote:
Here's a custom level that's harder than it might first appear, but still very doable:
http://pleasingfungus.com/?ctm=Robo-Tumbler!;OUTPUT:_Replace_R,Y,G,B_with_Y,G,B,R_respectively!_(Input_always__alternates);ry:yg|yg:gb|gb:br|br:ry|rybgbyr:ygrbrgy|rygbrygbrygb:ygbrygbrygbr|byrygbybrygbgy:rgygbrgrygbrbg|:;13;3;0;
My go at Robo-Tumbler! because nobody else posted theirs before. It's probably not optimal.
&code=c11:7f3;c11:8f2;c12:2f3;r12:3f3;r12:4f3;y12:5f2;c12:6f1;p12:7f0;i12:8f7;c12:9f3;p12:10f7;q12:11f2;p12:12f6;r13:5f2;g13:6f2;c13:7f0;c13:8f2;c14:5f3;q14:6f3;p14:7f1;y14:8f1;b15:6f0;r15:7f0;y11:10f2;
Abusing bad test cases:
&code=c12:9f3;p12:10f7;q12:11f2;y11:10f2;c12:8f3;r12:2f3;r12:3f3;y12:5f2;c12:4f3;c12:12f3;c11:6f1;g12:6f2;q13:6f3;p13:7f1;b14:6f0;r14:7f0;p12:7f0;c11:7f1;c11:5f2;c13:5f3;
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Kuwaga wrote:
Here is my solution to Robomecha! before I knew about bridges nor about flipping pieces, lol.
Wow. Your URL is so long that my animation generator (or rather, PHP,) does not even receive it. I wonder what's up with that.
Joined: 10/20/2006
Posts: 1248
Puh, I've finally beaten Metatron.. But my solution kind of sucks. After numerous failed attempts to develop a system that uses green/yellow to remember the parity that all failed because there wasn't enough space, I just changed my strategy to subtract 1 from the first and add 1 to the second number until you can't subtract 1 anymore. So now it says I've beaten the level, but it somehow feels like I've cheated. x_x In case anybody cares: [URL=http://pleasingfungus.com/?lvl=31&code=g12:2f2;q16:7f2;p16:8f0;q16:9f6;b17:7f3;c17:8f0;r17:9f1;c18:7f3;r16:6f0;c18:12f1;g16:10f0;b15:10f3;c15:11f3;b14:12f2;p15:12f3;q15:13f3;r16:12f0;g16:13f2;q17:13f5;c17:12f1;c17:11f0;c16:11f0;c18:11f1;c18:10f1;c18:9f1;c13:3f2;q13:13f1;r12:11f2;p13:11f7;b14:11f0;q13:10f0;r9:7f3;b10:3f2;q10:4f2;p10:5f4;q10:6f6;g10:7f0;c11:3f2;r11:4f3;c11:5f0;b11:6f1;c12:3f2;c12:6f1;c12:7f1;b16:4f2;p17:4f3;r18:4f0;q17:5f5;g18:5f3;g13:2f3;c14:3f2;c15:3f2;c16:3f2;c17:3f3;p14:9f7;c15:9f0;c14:10f0;q13:12f0;r12:12f3;p15:6f5;b14:6f2;q15:5f1;g14:5f0;g12:5f0;c13:5f0;c9:5f1;c9:4f2;g18:8f0;c18:6f3;c18:13f1;c11:8f0;c11:9f1;q11:10f5;c12:8f1;c12:9f1;c12:10f1;r8:9f2;c9:8f3;p9:9f7;q9:10f3;c10:8f0;b10:9f0;g10:10f2;q15:8f0;]click[/URL] And I somehow fail to comprehend flagitous' solution to it. Maybe it's just me, but once one of those numbers gets inverted it's just too difficult to follow for me. What exactly does it do?
Player (201)
Joined: 7/6/2004
Posts: 511
It inverts the first number then subtracts one from each number until the (second number) is zero, then inverts the first one again. it also has to do sign extension so that the first one cannot be zero. The xkcd people didn't count this solution as valid because it doesn't work when both numbers are the empty string (though this is not considered valid input by the malevolence engine, as it passes that). It could be modified to handle that properly and still be much shorter than their solution though.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
1 2
5 6