# Manufactorium--a logic game. (Kind of a turing machine programming game)

**URL:** <https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717>\
**Category:** The Game Room\
**Created:** [June 3, 2010, 1:14am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717 "2010-06-03T01:14:00Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 4, 2010, 5:31pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/21 "2010-06-04T17:31:39Z")

</div>

> [@](#):
>
> You can make conveyor belts cross by holding shift when you place them. You’ll need that later.

Now you tell me! That’s probably the main reason your Androids was more compact than mine (most of my space was taken up by conveyors routing all over the place to avoid each other), but I’m not going to try to revisit that one.

Soldiers and Spies are both really easy, if you understand binary. And I think I know a way to do Officers, too, but it’ll have to wait for this evening, since I’m off to the office now.

---

<div class="post-metadata">

**Author:** ![Sofis](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Sofis](https://boards.straightdope.com/u/Sofis)\
**Post date:** [June 4, 2010, 5:44pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/22 "2010-06-04T17:44:08Z")

</div>

> [@Chronos](#):
>
> Now you tell me! That’s probably the main reason your Androids was more compact than mine (most of my space was taken up by conveyors routing all over the place to avoid each other), but I’m not going to try to revisit that one.

Funnily enough, I didn’t use any crossing belts on that one. I may have made that one before I figured out one can cross belts myself.  
Another detail that took me way too long to realise is that flipping a piece is not the same as rotating it twice. :smack: That’s pretty important for keeping things compact, and you need compactness in the later levels.

---

<div class="post-metadata">

**Author:** ![Frylock](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@Frylock](https://boards.straightdope.com/u/Frylock)\
**Post date:** [June 4, 2010, 5:45pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/23 "2010-06-04T17:45:12Z")

</div>

> [@Sofis](#):
>
> You can make conveyor belts cross by holding shift when you place them. You’ll need that later.

:eek::eek::eek:

I missed that…

---

<div class="post-metadata">

**Author:** ![Frylock](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@Frylock](https://boards.straightdope.com/u/Frylock)\
**Post date:** [June 4, 2010, 6:05pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/24 "2010-06-04T18:05:43Z")

</div>

> [@Grumman](#):
>
> I’ve done it with 28. The key for me was that you only need to check for the number of digits once, after the tank has passed through all the branch nodes. This let me save 6 pieces by squishing the chain together, and another 7 since it no longer had to fold back on itself to fit.

I must be taking a different approach, since I’m not sure what you mean when you refer to

[spoiler]branch nodes.

Mine (down to 35 now) just consists of a series of five red/blue sorters. The first one sends blanks down a reject path, reds to a single conveyer pointing back at the sorter, and blues it sends on to the next sorter. The other four send any red or blue on, sending a blank down the reject path. That way if a robot has gotten through all of the sorters without getting sent down the reject path, then it has a blue somewhere on the fifth or greater digit, and so should be accepted–and is.

I don’t have any branches in mine. Maybe I should?

My current version folds into an L-shape at the very end because there’s just _barely_ not enough room to fit the fifth sorter.  
[/spoiler]

Code, if you can use it (I still haven’t figure out how to make codes work, though everyone else at Kongregate seems to have no problem):

```auto

?lvl=15&code=p12:3f3;c13:3f0;p12:5f3;p12:7f3;p12:9f3;c12:4f3;c12:6f3;c12:8f3;c11:3f3;c11:4f2;c11:5f3;c11:6f2;c11:7f3;c11:8f2;c13:5f3;c13:6f0;c13:7f3;c13:8f0;c11:9f3;c13:9f3;c11:10f2;c12:10f3;c13:10f0;c12:11f2;c13:11f2;p14:11f2;c14:10f2;c15:10f2;c16:10f3;c16:11f3;c16:12f0;c15:12f0;c14:12f0;c13:12f0;

```

---

<div class="post-metadata">

**Author:** ![Frylock](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@Frylock](https://boards.straightdope.com/u/Frylock)\
**Post date:** [June 4, 2010, 6:11pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/25 "2010-06-04T18:11:38Z")

</div>

Slight optimization at the very beginning, down to 31:

```auto

?lvl=15&code=p12:5f3;p12:7f3;p12:9f3;c12:6f3;c12:8f3;c11:5f3;c11:6f2;c11:7f3;c11:8f2;c13:5f3;c13:6f0;c13:7f3;c13:8f0;c11:9f3;c13:9f3;c11:10f2;c12:10f3;c13:10f0;c12:11f2;c13:11f2;p14:11f2;c14:10f2;c15:10f2;c16:10f3;c16:11f3;c16:12f0;c15:12f0;c14:12f0;c13:12f0;c12:3f3;p12:4f2;

```

ETA: More better! 28!

```auto

?lvl=15&code=c12:4f3;c12:5f2;c12:6f3;c12:7f2;c12:8f3;c12:9f2;p13:3f2;p13:4f3;c13:5f3;p13:6f3;c13:7f3;p13:8f3;c13:9f3;c14:4f3;c14:5f0;c14:6f3;c14:7f0;c14:8f3;c14:9f0;c12:3f2;p13:10f3;c14:10f3;c14:11f3;c14:12f0;c13:12f0;c12:10f3;c12:11f3;c13:2f3;

```

---

<div class="post-metadata">

**Author:** ![Frylock](https://avatars.discourse-cdn.com/v4/letter/f/ce7236/32.png) [@Frylock](https://boards.straightdope.com/u/Frylock)\
**Post date:** [June 4, 2010, 8:58pm UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/26 "2010-06-04T20:58:20Z")

</div>

My best Androids, which I actually like better than the recordholder for size. Mine’s prettier. 😉

```auto

?lvl=17&code=p12:4f3;c12:5f3;c12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c11:5f1;y11:4f0;p11:6f6;r8:5f2;b9:3f3;p9:4f0;p9:5f7;q9:6f1;c10:4f0;c10:6f2;

```

Uses 17 pieces.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 5, 2010, 12:25am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/27 "2010-06-05T00:25:45Z")

</div>

I just got Teachers, with less time and fewer pieces (40 pieces, 1:19) than I used for Androids. In retrospect, my Androids solution was needlessly complicated, since I did two tests separately that I could have just handled in one.

My original solution for Androids:

```auto

http://pleasingfungus.com/?lvl=17&code=p12:4f4;c8:6f3;c8:7f3;c8:8f3;c8:9f3;c8:10f3;c8:11f2;c9:11f2;c10:11f2;c11:11f2;y12:5f2;b13:5f1;c13:4f2;c14:4f2;p15:4f6;b15:3f3;r15:5f3;p15:6f3;r16:6f0;q15:7f3;y14:7f0;q9:8f2;y9:9f3;c9:10f2;p10:8f0;r10:9f1;c10:10f2;p11:8f7;c11:10f2;b12:8f0;c12:10f2;c13:10f1;c13:9f1;c13:8f1;c13:7f0;p11:6f4;c12:6f0;c12:7f1;c11:7f3;c11:4f0;c10:4f3;c9:6f0;c10:6f0;c10:5f3;

```

The first switch checks for zero-length input. The apparatus over on the right verifies that the code is of the form (some number of blues then some number of reds), and then the stuff on the lower left deletes reds and blues to check parity. For Teachers, I just checked format while I was counting.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 12:56am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/28 "2010-06-05T00:56:47Z")

</div>

A) Damn you. I was hoping to be productive today. (Though I suppose if I haven’t been productive by this time of day, it can’t hurt that much to kill the rest of the day…)

B) One small question that has little to do with the game: right when it starts up, there’s a volume bar that appears. However, I don’t know how to adjust the in-game volume setting (except to mute it). I don’t actually want to, mind you, but it annoys me that I can’t figure out how to do it anyway.

---

<div class="post-metadata">

**Author:** ![Grumman](https://avatars.discourse-cdn.com/v4/letter/g/43a26b/32.png) [@Grumman](https://boards.straightdope.com/u/Grumman)\
**Post date:** [June 5, 2010, 1:41am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/29 "2010-06-05T01:41:50Z")

</div>

> [@Frylock](#):
>
> I must be taking a different approach, since I’m not sure what you mean when you refer to branch nodes.

I mean sorters. Your solution is much the same as mine, except I only threw out blanks on the first and last sorters.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 4:12am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/30 "2010-06-05T04:12:29Z")

</div>

I’m up to Generals, Judiciary, Politicians, and Engineers, but some of my solutions are hideous so far… I’m sometimes really wishing this game used stacks instead of queues, or at least had built-in support for cycling the queue in the reverse direction. 🙂

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [June 5, 2010, 4:20am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/31 "2010-06-05T04:20:05Z")

</div>

> [@](#):
>
> I’m sometimes really wishing this game used stacks instead of queues, or at least had built-in support for cycling the queue in the reverse direction.

That would certainly make Professors easier.

And I’m not jealous at all that you’re so far ahead of me already. No, really. Besides, there are probably some standard methods for some of these that I just happen not to know.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 4:20am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/32 "2010-06-05T04:20:19Z")

</div>

Or multiple queues, or various things. Different things on every puzzle. But never what we actually have… 🙂

Yeah, some of them I was able to dredge up standard knowledge from automata theory type classes way back when. And, like I said, I haven’t focused on efficiency yet, which is probably something you’ve spent time honing so far.

---

<div class="post-metadata">

**Author:** ![Grumman](https://avatars.discourse-cdn.com/v4/letter/g/43a26b/32.png) [@Grumman](https://boards.straightdope.com/u/Grumman)\
**Post date:** [June 5, 2010, 4:28am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/33 "2010-06-05T04:28:14Z")

</div>

I managed to beat Rocket Planes:

Once you’ve marked the beginning of the tape with a green dot, cycle through the blue dots until you hit a red dot. Once you hit a red dot, cycle through the red dots until you hit another blue dot. Remove the blue dot, cycle through to the end of the tape, and append the blue dot you removed after the green start/finish dot. Then repeat until the red dot cycler doesn’t find any more blue dots before the end of the tape.

---

<div class="post-metadata">

**Author:** ![Grumman](https://avatars.discourse-cdn.com/v4/letter/g/43a26b/32.png) [@Grumman](https://boards.straightdope.com/u/Grumman)\
**Post date:** [June 5, 2010, 6:58am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/34 "2010-06-05T06:58:59Z")

</div>

And Police:

[SPOILER]My solution has three main sections:  
The first section adds a green and yellow dot to the front and and a yellow to the back of the tape, and sends it to the second section.

The second section moves the front yellow dot back one, and the back dot forwards one, then sends it to the third section.

The third section checks if the two yellow dots are next to each other. If they’re not, it’s sent back into the second section for another go. Otherwise it removes one of the yellow dots, removes the green start/finish dot and outputs the robot.[/SPOILER]

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 7:10am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/35 "2010-06-05T07:10:26Z")

</div>

> [@Indistinguishable](#):
>
> I’m up to Generals, Judiciary, Politicians, and Engineers, but some of my solutions are hideous so far… I’m sometimes really wishing this game used stacks instead of queues, or at least had built-in support for cycling the queue in the reverse direction. 🙂

Well, I passed all of those and am onto Seraphim. Except, I only passed Judiciary via an immense stroke of luck that let a hideously malfunctioning mechanism pass a sympathetic battery of tests in the middle of debugging it. So I’m really still working on that.

The one I’m proudest of right now is Generals, for the ultra-quick solution

Take Officers and swap red and blue

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 7:21am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/36 "2010-06-05T07:21:21Z")

</div>

> [@Indistinguishable](#):
>
> Except, I only passed Judiciary via an immense stroke of luck that let a hideously malfunctioning mechanism pass a sympathetic battery of tests in the middle of debugging it. So I’m really still working on that.

Ah, it wasn’t so bad. One missing blue-writer (and a conveyer belt to fit it into place). Alas, now it chides me for no longer achieving the minimum number of pieces I got away with before…

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 7:50am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/37 "2010-06-05T07:50:02Z")

</div>

On Ophanim, I decided to first use the assumption that both A and B would be given with the same bitlength. Surprisingly, this was apparently acceptable; they never seem to try anything else in their tests. Thus, I’ve moved on to Metatron, but I’m not sure if I should count this as legitimate or not.

ETA: Ah, sometimes they do. Ok, it’s definitely not legitimate, even though it managed to fool the game a couple times. Guess the easiest thing to try is to add an initial padding pass to make them the same length, and then use the old solution.

---

<div class="post-metadata">

**Author:** ![Indistinguishable](https://avatars.discourse-cdn.com/v4/letter/i/90ced4/32.png) [@Indistinguishable](https://boards.straightdope.com/u/Indistinguishable)\
**Post date:** [June 5, 2010, 8:15am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/38 "2010-06-05T08:15:53Z")

</div>

I’m also often wishing they gave numbers in little-endian…

---

<div class="post-metadata">

**Author:** ![Sofis](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Sofis](https://boards.straightdope.com/u/Sofis)\
**Post date:** [June 5, 2010, 11:21am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/39 "2010-06-05T11:21:53Z")

</div>

I finally solved Metatron. Robust solution too, unlike the one I had for Ophanim. 95 pieces, 2:05.

---

<div class="post-metadata">

**Author:** ![Sofis](https://avatars.discourse-cdn.com/v4/letter/s/e5b9ba/32.png) [@Sofis](https://boards.straightdope.com/u/Sofis)\
**Post date:** [June 5, 2010, 11:40am UTC](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717/40 "2010-06-05T11:40:48Z")

</div>

Interesting comment in the Kongregate comment thread:

> [@Pheredhel on Kongregate](#):
>
> under the assumption there would be no space restriction: I’d say it is turing complete, as we can simulate a turing-mashine as follows: for any alphabet, encode it in binary using red and blue. limit those symbols by yellow dots. use a single green dot to denote the position of the read/write head (it’s easy to move it forward/backward) now, the swiches, and belts can be used to emulate states, wich enables us to build a deterministic TM. so, yes, the game actually seems to be turing-complete ((it can emulate any turingmashine, so it is one));

Now I wonder about its busy beaver function. Given the set of n by n machines (the largest you get in the game is 13 by 13) that accept robots with empty input, what is the largest number of dots written to the tape of an empty input robot before acceptance?

[Previous page](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717.md?page=1)

[Next page](https://boards.straightdope.com/t/manufactorium-a-logic-game-kind-of-a-turing-machine-programming-game/541717.md?page=3)
