1 2
5 6
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
I found a neat game a few days ago. It's called Manufactoria. It is a puzzle game about making machines that does stuff to stripes of colors. I was playing it together with some #zsnes people yesterday, but when I went to bed, we still hadn't beaten the mid boss "Androids". I did on the other hand manage to make a few levels of my own.
?ctm=RoboNeedles;Only_legal_input_color_robots.;:*|bry:x|rb:*|ygy:x|rbbbyrb:x|rbrb:*;5;3;0;
?ctm=RoboMixers;Remove_one_from_each_end.;brb:r|rrbb:rb|rbbrb:bbr|br:|rrrbrbbrbrb:rrbrbbrbr;13;3;0;
?ctm=RoboWorms;Remove_every_even_color;bbrr:br|brbr:bb|rrbbrrbb:rbrb|rrrbbbrrbb:rrbrb|rrrrrrrrrrbbbbbbbbbb:rrrrrbbbbb;9;3;0;
&ctm=RoboGuns;OUTPUT:_Remove_all_sequences_longer_than_one_color.;bbbbb:|brbr:brbr|bbr:r|rbrbrbbr:rbrbrr|brrbrrbrrbrrbrrbrr:bbbbbb;13;3;0;
&ctm=RoboModems;ACCEPT:_Only_odd_parity!;brbbr:*|rbrbb:*|rrbbrbb:x|:x|b:*|r:x|bbbrbbbbbrbrbrbrrrb:x|rbbbr:*;7;3;0;
?ctm=RoboCalculators;Accept:
Only_evenly_divideable_by_three!;bb:*|br:x|brr:x|bbbbr:*|bbbrbrb:*|bbbrbbb:x|bbrrbrbbbbrbb:x;9;3;1;
Edit: fixed errors in robomodems and roboguns, also new roboCalculators level to make up for mirrors being a duplicate of an in game level.
Active player (312)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
interesting game... I just woud like to ask: why didn't you link to the original site?
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Because I did not find it there.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
An interesting point to make is that the 'programming language' in Manufactoria is turing complete, meaning that given an appropriately sized board (and sufficient tolerance for ugliness) any program can be written. Here's a trick: Use a yellow dot as a placeholder in the string - your read/write head, if you will. If you want to read one before the placeholder, set up your splitters so you take a different path depending on the colour. If you next find yellow, do something depending on the path - if you don't find yellow, pop the colour back onto the end and loop back to the start. (For instance, to move backward you'd push yellow, push the colour then go back to the start.) If you want to read one after the placeholder, read and put back on colours until you find nothing, then yellow - then split based on the next colour and do something. (For instance, to move forward you'd push the colour, push yellow then exit.) Using constructs like these, linked together with whatever kind of logic you desire, you can emulate a turing machine - which means any program you have the space for is possible. Plus, you can use greens to delimit symbols if you need an alphabet larger than binary - you just need to make each path remember what it popped, and push it back on after it's done with its other manipulations, unless you want to discard it.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
It's not just turing complete, it is a turing machine.
Player (146)
Joined: 7/16/2009
Posts: 686
I'm really enjoying this game. Not so much the challenge of actually solving all the levels, but doing so with as few parts as possible. I'm managing quite well, take Androids for example: while the task given sounds quite complicated, the level can be solved using as few as 12 parts.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
You can only do androids with so few parts because it doesn't present the particular colour sets that would make your solution fail/infinite loop. Taking the problem conceptually, a robust solution requires a lot more parts.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Emulator Coder, Skilled player (1310)
Joined: 12/21/2004
Posts: 2687
Androids can be solved properly with 12 parts. I just found a solution that uses 4 branches, 3 writers, 4 conveyors, and 1 bridge. It's probably almost identical to what Scepheo found. (I used way more than that the first time though, because I didn't know about bridges or the concept of markers.)
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
Hmm, let me run through the game to see if I can get that. I lost my progress, so I may as well try and optimize this time. 0:29 - 12 on Robobugs: ?lvl=5&code=c12:9f3;c12:10f3;c11:5f3;c12:4f3;p12:5f3;c13:5f3;c13:6f0;p11:6f3;p12:6f3;c11:7f2;c12:7f3;c12:8f3; 0:31 - 11 on Robocats: ?lvl=6&code=p12:10f3;c11:10f2;c13:10f1;c12:4f3;c12:5f3;c12:6f3;p12:8f4;p12:9f2;c13:8f0;c13:9f1;c12:7f3; 0:44 - 15 on Robobears: ?lvl=7&code=c12:4f3;c12:5f3;c11:7f3;p11:8f4;c11:10f1;c12:7f3;c12:8f3;p12:9f3;c13:7f3;p13:8f6;c13:10f1;c12:6f3;c12:10f3;p11:9f2;p13:9f0; 0:18 - 13 on Androids (cheat): ?lvl=17&code=c12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;p11:5f3;p13:5f3;c12:4f3;p12:5f3;b9:5f2;p10:5f3;r15:5f0;p14:5f3; 0:29 - 21 on Robomechas: ?lvl=28&code=g12:3f3;q11:5f0;p12:5f3;q13:5f6;c10:4f2;c11:4f2;c12:4f3;c13:4f0;c14:4f0;b10:5f1;r14:5f1;g11:6f3;g13:6f3;p12:7f3;b11:7f2;r13:7f0;q12:8f6;c12:9f3;c12:10f3;c12:11f3;c12:6f3; 0:38 - 29 on Robotanks: ?lvl=15&code=c13:3f0;p12:3f5;c11:3f3;p11:4f7;c12:4f3;c10:4f3;c10:5f2;i11:5f5;p13:5f6;c12:5f2;c13:4f2;i14:5f7;c14:4f3;c14:6f0;p13:7f7;c13:6f3;c14:7f3;i13:8f1;c14:8f0;c12:7f3;c12:8f3;p12:10f7;c12:9f3;c11:10f3;c11:11f3;c11:12f2;c13:10f3;c13:11f3;c13:12f0; 0:34 - 21 on Robo-children: ?lvl=18&code=g12:3f3;p12:11f7;g11:11f1;g13:11f1;c11:10f1;c13:10f1;q12:10f6;p12:9f7;p11:9f1;p13:9f1;r10:9f1;b14:9f1;i11:8f4;i13:8f0;c10:8f2;c12:8f3;c14:8f0;c12:4f3;c12:5f3;c12:6f3;c12:7f3; 0:21 - 8 on Robo-spies: ?lvl=16&code=c12:4f3;c12:5f3;c12:6f3;c12:7f3;c12:8f3;p12:9f4;p12:10f7;p11:10f5;
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Emulator Coder, Skilled player (1310)
Joined: 12/21/2004
Posts: 2687
Patashu wrote:
Edit: 19 parts. ?lvl=17&code=g12:4f3;q12:9f6;p12:10f7;c10:7f2;r10:8f1;i11:7f3;c12:7f3;p12:8f7;i13:7f2;c14:7f0;b14:8f1;c11:9f1;c13:9f1;g11:10f1;g13:10f1;p11:8f1;p13:8f1;c12:5f3;c12:6f3;
That's actually not valid, because it accepts things like "red, blue". It failed for me by accepting a random test that went "RBBRBBRRBR".
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Androids 15/0:36 ?lvl=17&code=c12:9f3;c12:10f3;c12:8f3;r9:5f2;b10:3f3;p10:4f0;p10:5f7;q10:6f7;y11:4f0;i11:5f4;p11:6f6;p12:4f3;i12:5f5;c12:6f3;c12:7f3;
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
Whoops - I was actually solving the problem to robo-children while doing androids. (I literally just copied it over and added belts, and it worked.) This is what I get for not reading properly. EDIT: I can't think of a solution for Androids that doesn't also solve robo-children, so I just put in a cheat solution. I know it's possible because of turing completion, but I don't want to go through the mental hurdles yet.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
My solution does not solve robo children.
Player (146)
Joined: 7/16/2009
Posts: 686
My solution for Androids: ?lvl=17&code=c12:10f3;c12:9f3;c12:4f3;c12:5f3;p12:6f7;c12:7f3;p13:6f2;b13:7f1;c12:8f3;b13:5f1;p13:4f5;r14:4f0; This actually works for any input, as far as I know. It uses as little parts as it does by not using begin/end markers.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
Wow, that's REALLY clever to me. I really need to rethink how I approach this game.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Emulator Coder, Skilled player (1310)
Joined: 12/21/2004
Posts: 2687
Scepheo wrote:
My solution for Androids: ?lvl=17&code=c12:10f3;c12:9f3;c12:4f3;c12:5f3;p12:6f7;c12:7f3;p13:6f2;b13:7f1;c12:8f3;b13:5f1;p13:4f5;r14:4f0; This actually works for any input, as far as I know. It uses as little parts as it does by not using begin/end markers.
That's not a valid solution, because it accepts the sequence "B R B B R R" and it loops infinitely when given the sequence "B B". So I found a different solution that happens to also use only 12 parts, but I think this one actually works: ?lvl=17&code=c12:9f3;c12:10f3;g12:4f3;i12:5f6;p12:6f7;c12:7f3;q13:4f1;p13:5f5;p13:6f2;b13:7f1;r14:5f0;c12:8f3; EDIT: Robo-children gave me more trouble. I can't get it below 21 parts: ?lvl=18&code=c12:11f3;y12:3f3;c12:10f3;b10:4f2;c10:5f1;i11:4f4;p11:5f5;p12:5f3;q12:6f2;p12:7f3;c12:8f3;i13:4f0;p13:5f5;r14:4f0;c14:5f1;c12:9f3;y13:7f1;y11:7f1;c13:6f1;c11:6f1;c12:4f3;
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
I have 21 parts on it too, so take a look at mine.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (146)
Joined: 7/16/2009
Posts: 686
A (completely different) solution for Robot Children, also using 21 parts: ?lvl=18&code=c12:11f3;c12:10f3;c12:9f3;r9:4f2;q10:3f1;p10:4f1;c11:3f2;b11:4f0;y12:3f3;c12:4f3;c12:7f3;c12:8f3;c10:5f1;p12:6f3;i12:5f1;p13:6f6;r13:7f1;c13:5f0;c11:5f0;p11:6f4;b11:7f1; And indeed nitsuja, my solution for Androids doesn't work... Bummer. Ah well. Brute force solution for Robot Tanks using only 14 parts: ?lvl=15&code=p12:3f2;c11:4f3;c11:5f3;p12:4f7;p13:4f6;c13:6f0;c13:5f3;c12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c12:11f3;c11:6f2; EDIT: Thanks Patashu, Robospies in 8: ?lvl=16&code=c12:7f3;c12:10f3;c12:8f3;c12:9f3;p11:6f3;p12:5f2;p12:6f7;c12:4f3; EDIT: Thanks again, Milidogs in 8: ?lvl=11&code=c12:5f3;p12:7f3;c11:7f2;c13:7f1;c13:6f0;c12:8f3;c12:9f3;p12:6f4; And the one I'm trying to improve now: Rocketplanes in 21! ?lvl=27&code=y12:4f3;c12:10f3;c10:9f2;p11:7f0;r11:8f1;c11:9f2;p12:7f7;c12:9f3;b13:7f0;b11:6f0;r10:6f1;p10:5f1;b11:5f0;r9:5f2;q10:4f1;c11:4f2;c12:5f3;c12:6f3;r10:7f3;q10:8f2;q12:8f2;
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
My robospies is 10 parts, but I realized it fails if the string has no blue in it. ...So I fixed it, and now it uses 8 parts. Nice. I can also do millidogs in 8 - you'll want to work on that, too.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (198)
Joined: 12/3/2006
Posts: 151
Does anyone have an elegant solution for "Police!"? The best I got is 3:14 using 51 parts, but I have a feeling that's not very optimal. On another note: Rocket Planes in 3:09 using 19 parts: ?lvl=27&code=c12:6f3;p12:7f3;r13:8f1;c12:10f3;p13:7f6;c14:8f3;b11:7f2;b13:6f2;r14:6f1;p14:5f0;b14:4f3;c12:4f3;g12:5f3;c14:9f0;c13:9f0;q12:9f0;q13:5f1;r14:7f3;c12:8f3;
Active player (286)
Joined: 3/4/2006
Posts: 341
Gunty wrote:
Rocket Planes in 3:09 using 19 parts: ?lvl=27&code=c12:6f3;p12:7f3;r13:8f1;c12:10f3;p13:7f6;c14:8f3;b11:7f2;b13:6f2;r14:6f1;p14:5f0;b14:4f3;c12:4f3;g12:5f3;c14:9f0;c13:9f0;q12:9f0;q13:5f1;r14:7f3;c12:8f3;
This can be done faster. Specifically, my solution is O(n^2) instead of O(n^3). Rocket Planes in 1:37 using 19 parts: ?lvl=27&code=g12:4f3;c11:9f3;c11:10f3;q11:11f3;r10:8f2;c11:7f3;p11:8f7;p12:6f7;c12:7f0;b13:6f0;c12:5f3;c12:8f2;c14:8f1;r13:9f1;p13:8f6;b13:7f3;q14:6f1;g14:7f1;r11:6f3;
arflech
He/Him
Joined: 5/3/2008
Posts: 1120
I didn't realize that you could enter the branches from any direction; that certainly makes some levels easier...
i imgur com/QiCaaH8 png
Player (198)
Joined: 12/3/2006
Posts: 151
Nitrodon wrote:
Rocket Planes in 1:37 using 19 parts: ?lvl=27&code=g12:4f3;c11:9f3;c11:10f3;q11:11f3;r10:8f2;c11:7f3;p11:8f7;p12:6f7;c12:7f0;b13:6f0;c12:5f3;c12:8f2;c14:8f1;r13:9f1;p13:8f6;b13:7f3;q14:6f1;g14:7f1;r11:6f3;
Interesting strategy, which actually allows for another optimization: Rocket Planes in 1:35 using 17 parts: ?lvl=27&code=g12:4f3;c11:7f3;p12:6f7;b13:6f0;c12:5f3;c14:8f1;r13:9f1;p13:8f6;b13:7f3;q14:6f1;g14:7f1;c11:6f3;p12:8f7;r11:8f2;q12:10f6;c12:9f3;c12:7f3;
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
arflech wrote:
I didn't realize that you could enter the branches from any direction; that certainly makes some levels easier...
That, and also, I didn't learn of bridges until in RoboMechas, where I absolutely needed them.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Patashu wrote:
0:31 - 11 on Robocats: ?lvl=6&code=p12:10f3;c11:10f2;c13:10f1;c12:4f3;c12:5f3;c12:6f3;p12:8f4;p12:9f2;c13:8f0;c13:9f1;c12:7f3;
0:28 - 11 on Robocats. More or less the same as yours, except as a mirror image and closer to the beginning. ?lvl=6&code=c12:4f3;p12:5f2;p12:7f7;p12:6f4;c13:7f0;c11:6f1;c12:8f3;c12:9f3;c12:10f3;c11:7f1;c11:5f2; 0:04 - 7 on "Soldiers!": ?lvl=12&code=r12:4f3;r12:5f3;r12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3; :) Re: Officers!, I first made a "solution" that assumes a reverse endianess. Turned out to be a wrong assumption. ?lvl=13&code=c12:9f3;c12:10f3;c12:11f3;c12:12f3;c12:6f3;c12:7f3;c12:8f3;r11:2f2;p12:2f3;b12:3f3;c12:4f3;y13:2f2;b13:3f2;c13:4f0;b14:2f3;p14:3f3;q14:4f3;r15:3f0;c12:5f3; Fixing for the correct endianess, I get: 2:03 -- 33 parts ?lvl=13&code=i12:3f5;g12:2f3;i12:4f5;p12:5f3;i12:6f1;c12:12f3;b13:4f3;r11:6f1;y13:3f1;c13:2f0;b10:4f2;q11:2f5;q11:3f3;p11:4f5;c11:5f1;c13:5f3;p13:6f3;r14:6f0;y10:3f1;r10:2f1;p10:1f6;c11:1f3;c12:9f3;c12:10f3;q13:8f1;p13:9f3;b14:8f3;r14:9f0;c13:7f3;c12:7f2;c12:11f3;b12:8f3;q13:10f1; I first coded this in C++, then translated it into Manufactoria. The first revision was 66 parts long and took 2:41 to execute. Then I optimized it progressively. Note: This program has three blue arrows leading to "rejection". None of the testcases triggered them, and I think none ever will, so I removed the rules that handles those branches. They're in my C++ code, though.
1 2
5 6