Manufactoria
May 21, 2010 5:45 PM Subscribe
Manufactoria is one of the best games I have played in a while.
Not for everyone, and unashamedly geeky, Manufactoria pretends to be about robots when it is in fact about Turing machines, or at least Turing-like machines. Written in Flixel, the music is not annoying if you turn it down, but the puzzles take you from outputting your input to all manner of arcane binary manipulation and beyond. (via)
Not for everyone, and unashamedly geeky, Manufactoria pretends to be about robots when it is in fact about Turing machines, or at least Turing-like machines. Written in Flixel, the music is not annoying if you turn it down, but the puzzles take you from outputting your input to all manner of arcane binary manipulation and beyond. (via)
Level one was so deceptively easy.
I am now at level two and have no idea what to do. I keep re-reading the instructions and my brain refuses to process them.
Help!
posted by JaredSeth at 6:16 PM on May 21, 2010
I am now at level two and have no idea what to do. I keep re-reading the instructions and my brain refuses to process them.
Help!
posted by JaredSeth at 6:16 PM on May 21, 2010
Ah. Took me a minute to figure out what was going on. I've done the first five levels of the topmost branch now and will probably come back for the rest of them later.
It's a really slick logic puzzle game underneath the Windows 3.1 looking interface.
Good find.
posted by 256 at 6:52 PM on May 21, 2010
It's a really slick logic puzzle game underneath the Windows 3.1 looking interface.
Good find.
posted by 256 at 6:52 PM on May 21, 2010
Jared Seth. Here's what my solution to level two looks like:
Directly below the door the robots come in, I placed a B/R branch oriented so that the Blue arrow was pointing down, then directly below that, a downward traveling belt and below that, another, leading into the hopper. That's it.
Basically, you need to make it so that if a robot's test strip matches the description in the lower left (starts with blue, in this case), it ends up in the hopper. If it doesn't you can make it end anywhere but the hopper. In my example, robots whose test strip start with red get shunted back onto the entry door, and robots with no test strip at all get abandoned on the factory floor to the right of the B/R branch.
posted by 256 at 6:58 PM on May 21, 2010 [1 favorite]
Directly below the door the robots come in, I placed a B/R branch oriented so that the Blue arrow was pointing down, then directly below that, a downward traveling belt and below that, another, leading into the hopper. That's it.
Basically, you need to make it so that if a robot's test strip matches the description in the lower left (starts with blue, in this case), it ends up in the hopper. If it doesn't you can make it end anywhere but the hopper. In my example, robots whose test strip start with red get shunted back onto the entry door, and robots with no test strip at all get abandoned on the factory floor to the right of the B/R branch.
posted by 256 at 6:58 PM on May 21, 2010 [1 favorite]
Not being able to move along the "tape" makes it quite a bit harder than normal Turing machine programming. My solution to the "Androids!" level took a few minutes to validate, even at the highest speed. (My solution, if anyone wants it - copy everything after the sharp sign)
posted by ymgve at 7:05 PM on May 21, 2010
posted by ymgve at 7:05 PM on May 21, 2010
I hit on a slow O(n^2) solution to one of the problems (equal numbers of red and blue). It turns out there is a secret extra requirement - your solution must finish quickly enough for you to not just give up on waiting for the animation to complete.
posted by pmb at 7:07 PM on May 21, 2010
posted by pmb at 7:07 PM on May 21, 2010
I did manage to get past level two once I finally wrapped my head around what I was supposed to be doing. This helped (it says "walkthrough" but it's not really).
posted by JaredSeth at 7:15 PM on May 21, 2010
posted by JaredSeth at 7:15 PM on May 21, 2010
pmb- you can drag the "speed" slider (on the bottom) over to the right after you've hit play to make everything go up to 50x faster.
posted by a snickering nuthatch at 7:46 PM on May 21, 2010
posted by a snickering nuthatch at 7:46 PM on May 21, 2010
Jpfed - you perhaps underestimate exactly how slow my solution was... When the slider was at 50, it took 10 minutes to finish the "Androids!" level that ymgve mentions.
posted by pmb at 8:18 PM on May 21, 2010 [1 favorite]
posted by pmb at 8:18 PM on May 21, 2010 [1 favorite]
The version at the author's original site here seems to be quite a bit more optimized. Be warned: He changed around the levels a bit in the latest version - the Android level now has a different task.
posted by ymgve at 8:23 PM on May 21, 2010
posted by ymgve at 8:23 PM on May 21, 2010
That is fun but outrageously hard. My brain isn't used to thinking like that! I got pretty far but now I have a migraine.
posted by The Winsome Parker Lewis at 11:40 PM on May 21, 2010
posted by The Winsome Parker Lewis at 11:40 PM on May 21, 2010
IS there such a thing as a a reverse Turing test? Is that what's going on here?
posted by kaibutsu at 12:12 AM on May 22, 2010 [1 favorite]
posted by kaibutsu at 12:12 AM on May 22, 2010 [1 favorite]
Anyone have suggestions for similar logic/Turing-type games?
posted by mrbill at 2:55 AM on May 22, 2010
posted by mrbill at 2:55 AM on May 22, 2010
Don't click on these unless you're ok with your solution (if applicable) being overwritten with the provided solutions!
My androids solution
My officers solution.
posted by a snickering nuthatch at 3:10 AM on May 22, 2010
My androids solution
My officers solution.
posted by a snickering nuthatch at 3:10 AM on May 22, 2010
Anyone have suggestions for similar logic/Turing-type games?
posted by mrbill at 4:55 AM on May 22 [+] [!]
I think the posted game is the best I've seen in this style, but you might also be interested in lightbot and robozzle.
posted by a snickering nuthatch at 3:18 AM on May 22, 2010
My brain is really bent on the 'pass robots with exactly twice as many blues as reds'.
I got through the one where you pass robots with equal numbers of reds and blues with a slightly buggy machine. The idea was to take pairs of blues and replace them with a green, take pairs of reds and replace them with yellow, and do the same thing in reverse on the lower half of the screen. Once all the yellow and green dots had been replaced with half as many reds and blues again (so the robot ended up with 1/4 as many dots as it started with), return it to the top of the screen to start over. The basic idea was that the center path was 'balance', and the robot moved further away from the center as it become overweight with either reds or blues. It passed when it got dropped back on the center line, empty of all dots.
Somewhere in that mess, I was dropping dots... I think I know where it is, but fortunately, it worked well enough to pass the test cases, and I didn't feel like tearing it apart to add in enough room to replace the dots I was losing.
But, man, my brain is really bent on the 'pass robot if it has twice as many blues as reds'. The condense trick doesn't work because you can only remove two blues and a red. That means you need about eight states in the machine.... a unique path for blue/blue/blue, blue/blue/red, and so on. Only two of those paths remove the dots, the others have to either fail the robot or replace the dots to keep thinking. I have two problems; insufficient room, and not being quite clear on how to tell whether or not to make another pass on the tape. There must be a smarter way to approach the problem, but I haven't hit on it yet.
Some of the puzzles are very easy if you know binary math -- "multiply by eight" is a good example. If you know the trick, it's dirt-simple. If you don't, ouch.
This is a fantastic game if you're fairly geeky.
posted by Malor at 3:58 AM on May 22, 2010
I got through the one where you pass robots with equal numbers of reds and blues with a slightly buggy machine. The idea was to take pairs of blues and replace them with a green, take pairs of reds and replace them with yellow, and do the same thing in reverse on the lower half of the screen. Once all the yellow and green dots had been replaced with half as many reds and blues again (so the robot ended up with 1/4 as many dots as it started with), return it to the top of the screen to start over. The basic idea was that the center path was 'balance', and the robot moved further away from the center as it become overweight with either reds or blues. It passed when it got dropped back on the center line, empty of all dots.
Somewhere in that mess, I was dropping dots... I think I know where it is, but fortunately, it worked well enough to pass the test cases, and I didn't feel like tearing it apart to add in enough room to replace the dots I was losing.
But, man, my brain is really bent on the 'pass robot if it has twice as many blues as reds'. The condense trick doesn't work because you can only remove two blues and a red. That means you need about eight states in the machine.... a unique path for blue/blue/blue, blue/blue/red, and so on. Only two of those paths remove the dots, the others have to either fail the robot or replace the dots to keep thinking. I have two problems; insufficient room, and not being quite clear on how to tell whether or not to make another pass on the tape. There must be a smarter way to approach the problem, but I haven't hit on it yet.
Some of the puzzles are very easy if you know binary math -- "multiply by eight" is a good example. If you know the trick, it's dirt-simple. If you don't, ouch.
This is a fantastic game if you're fairly geeky.
posted by Malor at 3:58 AM on May 22, 2010
I finally figured out that 'pass if two blues exist for one red' is a special case of 'equal'... replacing pairs of blues with single greens, and replacing reds with yellows, and crashing if you end up with an unmatched blue (which means you had an odd number of blues, and therefore you can't have 2x anything) then lets you do the same 'equal' test you did in a prior exercise.
Trying to hold the state in the components was totally the wrong way to handle it.
posted by Malor at 9:09 AM on May 22, 2010
Trying to hold the state in the components was totally the wrong way to handle it.
posted by Malor at 9:09 AM on May 22, 2010
Only two of those paths remove the dots, the others have to either fail the robot or replace the dots to keep thinking.
That's almost the right idea. You don't have to replace the dots you just read, only the ones that get in the way before you reach the dot you want.
It helps to put a single yellow/green dot at the start to keep track of the end of the tape (and replace it as needed). Accept when that dot is the only one remaining.
posted by H-Bar at 9:24 AM on May 22, 2010
That's almost the right idea. You don't have to replace the dots you just read, only the ones that get in the way before you reach the dot you want.
It helps to put a single yellow/green dot at the start to keep track of the end of the tape (and replace it as needed). Accept when that dot is the only one remaining.
posted by H-Bar at 9:24 AM on May 22, 2010
My fast 'n' dirty androids solution.
My head hurts and I think my ears are bleeding.
posted by mrbill at 10:07 AM on May 22, 2010
My head hurts and I think my ears are bleeding.
posted by mrbill at 10:07 AM on May 22, 2010
I am now at level two and have no idea what to do. I keep re-reading the instructions and my brain refuses to process them.
See the three-way arrow thingies? You don't have to enter on the black line side, which is visually-implied. And SPACE swaps blue and red.
posted by alasdair at 10:57 AM on May 22, 2010 [2 favorites]
See the three-way arrow thingies? You don't have to enter on the black line side, which is visually-implied. And SPACE swaps blue and red.
posted by alasdair at 10:57 AM on May 22, 2010 [2 favorites]
Also, the number under the item you can place? It's not the number of sections or items you can place, it's the key you press to select it.
posted by alasdair at 11:06 AM on May 22, 2010 [1 favorite]
posted by alasdair at 11:06 AM on May 22, 2010 [1 favorite]
I've done a degree in comp sci, so getting a "solution" to these is not ludicrously tough in the abstract, but the space requirements can be a bitch.
posted by juv3nal at 12:56 PM on May 22, 2010
posted by juv3nal at 12:56 PM on May 22, 2010
Space swaps blue and red? Alasdair, you complete me.
posted by ourobouros at 6:33 PM on May 22, 2010
posted by ourobouros at 6:33 PM on May 22, 2010
I just don't get this. What would I need to read to get this?
posted by stammer at 7:00 PM on May 22, 2010
posted by stammer at 7:00 PM on May 22, 2010
I just don't get this. What would I need to read to get this?
Something like this probably?
The basic trick is that you need to plan out sections that will loop back on themselves or loop back a few steps back in the chain.
posted by juv3nal at 11:21 PM on May 22, 2010
Something like this probably?
The basic trick is that you need to plan out sections that will loop back on themselves or loop back a few steps back in the chain.
posted by juv3nal at 11:21 PM on May 22, 2010
OK, I got 8 left and my excuses for spending any more time on this are running out. If there are any solutions posted online (pictures, the links to the game site didn't work for me), I'd be glad if someone could point me in the right direction.
Or at least tell me how you solve rocketplanes. I created a loop that sorts the string but haven't been able to create a way for it to break the loop when it is done sorting. Is that the wrong way to go about things?
posted by JeNeSaisQuoi at 3:40 AM on May 23, 2010
Or at least tell me how you solve rocketplanes. I created a loop that sorts the string but haven't been able to create a way for it to break the loop when it is done sorting. Is that the wrong way to go about things?
posted by JeNeSaisQuoi at 3:40 AM on May 23, 2010
Here's a hastily annotated solution.
I originally did this a quick and dirty way, but redid it because it's a good example of the trick of separating the string into the "original" and "processed" sides, moving stuff from the original side to the processed side one at a time.
posted by fleacircus at 4:55 AM on May 23, 2010
I originally did this a quick and dirty way, but redid it because it's a good example of the trick of separating the string into the "original" and "processed" sides, moving stuff from the original side to the processed side one at a time.
posted by fleacircus at 4:55 AM on May 23, 2010
Thx fleacircus. Once I saw your "repopulate the rest of the string" idea, I borrowed that and was able to modify my previous built into something working. I think your version is prettier though, mine needed 40 parts.
posted by JeNeSaisQuoi at 7:19 AM on May 23, 2010
posted by JeNeSaisQuoi at 7:19 AM on May 23, 2010
ymgve: "The version at the author's original site here seems to be quite a bit more optimized. Be warned: He changed around the levels a bit in the latest version - the Android level now has a different task."
Maybe it's just in this version (which is much better in the instruction pages, btw), but when you finish the visible levels, three new ones open up. First one, Seraphim, is pretty easy, but the next one, Orphanim, is kicking my ass. I thought I almost had it, just couldn't quite squeeze it in, but now I noticed a fatal flaw in my method and it's headed back to the drawing board.
posted by alexei at 2:21 AM on May 24, 2010
Maybe it's just in this version (which is much better in the instruction pages, btw), but when you finish the visible levels, three new ones open up. First one, Seraphim, is pretty easy, but the next one, Orphanim, is kicking my ass. I thought I almost had it, just couldn't quite squeeze it in, but now I noticed a fatal flaw in my method and it's headed back to the drawing board.
posted by alexei at 2:21 AM on May 24, 2010
I'm on Orphanim too. I am a little stalled because it's so easy if you know A and B are of equal length, but I haven't thought of a way to pad them to equal length.
posted by fleacircus at 2:40 AM on May 24, 2010
posted by fleacircus at 2:40 AM on May 24, 2010
Aaaargh! The size of the androids / lvl=17 board shrank between last night and today, so all of the machinery I was working on around the edge disappeared! Did anyone else get that? The description of the problem also changed, from something like "Exactly as many reds as blues in any order" to "Some number of blue, then the same number of red". And the mute button still doesn't work for me in any browser.
But great game, anyways, Turing machines as a game is a fabulous idea.
posted by XMLicious at 6:09 AM on May 24, 2010
But great game, anyways, Turing machines as a game is a fabulous idea.
posted by XMLicious at 6:09 AM on May 24, 2010
Woohoo got 'em all. I was hoping for a blurb like when you finish "Engineers", but nothing.
posted by fleacircus at 6:13 AM on May 24, 2010
posted by fleacircus at 6:13 AM on May 24, 2010
XMLicious, ugh you're right. Robochildren is now equal number of blue and red in any order, and got shrunk too. Almost as if to prevent big brute force solutions.
posted by fleacircus at 6:19 AM on May 24, 2010
posted by fleacircus at 6:19 AM on May 24, 2010
Success on Orphanim. First one I had to diagram ahead of time. For what it's worth, I didn't use your method, fleacircus.
posted by alexei at 12:46 PM on May 24, 2010
posted by alexei at 12:46 PM on May 24, 2010
I couldn't get that solution to work. I used two loops to pop off and compare final "digits". Top loop was A<>B state. How'd you do it, alexei?
This game definitely bit me; I went back and made sure all the puzzles worked with the new changes, and looked for sneakier and tidier solutions (like a "equal number of reds and blues in any order" solution that's is O(N) best case).>
posted by fleacircus at 9:08 PM on May 24, 2010
This game definitely bit me; I went back and made sure all the puzzles worked with the new changes, and looked for sneakier and tidier solutions (like a "equal number of reds and blues in any order" solution that's is O(N) best case).>
posted by fleacircus at 9:08 PM on May 24, 2010
(Whee 5 6 7 11 13 14 15 16 17 18 19 21 20 22 23 24 27 28 29 30 31)
posted by fleacircus at 11:12 PM on May 24, 2010
posted by fleacircus at 11:12 PM on May 24, 2010
Format your string so: AAA y g BBB y g. Drop any leading zeros, and if A is empty, dump the robot.
The idea is to have a loop which moves each y one step to the left at every pass. If the y in B reaches the start of B before the y in A reaches the start of A, B is shorter than A and hence smaller, and the robot is good. If the y reaches the start of A, B is either the same length or longer than A-- if it is longer, dump it, and if it is the same length drop the first digit of each string and send the results back to the beginning.
1. Strip leading zeros from both, dump any strings where A is nonexistent, and add markers: AAAAygBBBBBByg or AAygBByg or Aygyg.
2. If the next color is y, go to step 4. Otherwise, loop through A until you reach the last digit before y, then swap that digit with y to get AAAyAgBBBBBByg, or AyAgBByg or yAgyg.
3. Repeat for B. Now you have AAAyAgBBBBByBg or AyAgByBg (in the third case you can't do it because B is shorter than A, so proceed to exit). Loop back to step 2.
4. Now you have something like yAAAAgBByBBBBg, and yAAAAgyBBBBg. Proceed through it, dropping the first digit of both A and B (which are necessarily blue). If the second y doesn't immediately follow the first g, B is longer than A and yAAAAgBByBBBBg is dumped. If it does, the two strings are the same length, so, having dropped the first digit of each string and reset the locations of the 'y's, send the robot back to step 1 to compare the remainders.
http://imgur.com/y14Bf.png
Now on to the final one. Also not easy.
posted by alexei at 12:58 AM on May 25, 2010
The idea is to have a loop which moves each y one step to the left at every pass. If the y in B reaches the start of B before the y in A reaches the start of A, B is shorter than A and hence smaller, and the robot is good. If the y reaches the start of A, B is either the same length or longer than A-- if it is longer, dump it, and if it is the same length drop the first digit of each string and send the results back to the beginning.
1. Strip leading zeros from both, dump any strings where A is nonexistent, and add markers: AAAAygBBBBBByg or AAygBByg or Aygyg.
2. If the next color is y, go to step 4. Otherwise, loop through A until you reach the last digit before y, then swap that digit with y to get AAAyAgBBBBBByg, or AyAgBByg or yAgyg.
3. Repeat for B. Now you have AAAyAgBBBBByBg or AyAgByBg (in the third case you can't do it because B is shorter than A, so proceed to exit). Loop back to step 2.
4. Now you have something like yAAAAgBByBBBBg, and yAAAAgyBBBBg. Proceed through it, dropping the first digit of both A and B (which are necessarily blue). If the second y doesn't immediately follow the first g, B is longer than A and yAAAAgBByBBBBg is dumped. If it does, the two strings are the same length, so, having dropped the first digit of each string and reset the locations of the 'y's, send the robot back to step 1 to compare the remainders.
http://imgur.com/y14Bf.png
Now on to the final one. Also not easy.
posted by alexei at 12:58 AM on May 25, 2010
Finally finished Metatron. Since I don't know anything about actual binary operations I relied on elementary school math lessons.
posted by Authorized User at 1:47 AM on May 26, 2010
posted by Authorized User at 1:47 AM on May 26, 2010
« Older Unintentional or Hyper-Aware Marketing? | Famous Theist Retires Newer »
This thread has been archived and is closed to new comments
You should be ashamed!
I kid, I kid. I didn't like it, but I can see why some people would. Good find nonetheless.
posted by Malice at 6:12 PM on May 21, 2010