Ah, who am I kidding? Turing Machines have always been fun. Manufactoria is a Flash-based puzzle game for those of us that like a good brain-scratcher. In reality, we’re making a finite state machine which simulates computer logic. We look at a sequence of inputs and react based on the state we’re seeing. In the game, we’re building test machines to run through some robots’ programming to make sure it meets the conditionals for that level, won’t go crazy and then – well!
The game is probably best explained through a few examples.
These robots have programming that consist of a series of red or blue dots. Our job is to move the robots from where they enter to the Accept Box if, and only if, they meet the criteria for each level.To accomplish this, we have two tools at our disposal: conveyor belts and branch-conveyors. The conveyor belt just moves the robot whatever direction you point the conveyor belt. The branch conveyor looks at the current symbol on the robot’s tape. If it’s red, it moves it to the right, blue to the left, and end of the tape down. The conveyor belts and the branch-conveyors can be rotated as needed, but once you set up your machine it’s in a fixed position.
If this sounds too simple to your astounding engineering mind, give it a few levels and more tools will be introduced if you take the lower branch like writing to the programming and with additional colors. There may even be more beyond that since I haven’t finished the game yet and there are plenty of levels to wrap your mind around.
The solutions can vary from the simple…
to a bit more complicated.
After you devise your machine, hit the Play button to begin the test. The robots will come through and hopefully end up where they belong. If there’s a problem with your logic, you’ll see an error and be able to modify your machine. If your logic is all correct, you will see a success screen telling you how many parts were used in your machine. Can you think of a more efficient way to do it?
For similar good “games for engineers”, also check out: