Manufactoria - a game about Turing machines
jayisgames.com
jayisgames.com
Some of the later levels are pretty brutal, especially the bonus levels, but in a good way.
(They're more like Turing machines by the way)
The only reason I'm slightly annoyed: I designed a neat way to avoid failing on triple blues, but then the game never sent a triple blue my way...
(Edit: Added spaces so that the site doesn't turn my regexes into formatting.)
This cost me half a day yesterday, and I am preparing for an important exam. Not good.
Great game, though. The only issue I had was that it seamed like conceptually many of the problems were quite easy to solve, the hard part was fitting it all on the board without the conveyors overlapping. Being able to mirror the gates would be nice, for that purpose.
Is there a simpler solution to that one?
Up until the last column or two, there's neat solutions to all of them, but some of the later ones really do require a huge part of the level and a nearly unreadable tangle of paths.
?lvl=27&code=g12:4f0;p11:4f0;y11:3f3;r11:5f1;q10:4f2;c8:3f3;c8:4f3;c9:3f0;c8:8f2;c8:9f1;c8:10f1;c8:11f1;q9:8f2;b9:9f1; b9:10f3;r9:11f0;p10:8f0;c10:9f3;q10:10f3;c10:11f0;c8:5f3;c8:6f3;c10:3f0;g8:7f3;c9:7f2;c10:7f2;r11:10f1;q13:11f1;p15:5f1;b16:5f0;r14:5f2;q15:4f1;c14:4f0;c13:4f0;c16:6f1;p12:9f2; b12:10f1;r12:7f2;g11:9f2;c11:7f3;c11:8f3;c12:8f1;p13:7f1;c16:7f1;i14:7f7;c15:7f2;c13:6f2;c14:6f3;c14:8f3;c14:9f3;c14:10f3;c14:11f0;c13:9f2;
It was very refreshing for me to think about whole state traveling around your program as a single container with very limited access.
I think it might have taught me about programming Turing machine and how different it is from every day programming.
Thank you HN for tip that I can flip element with space bar. Without this information I got stuck at Ophanim level. Maybe I'll be able to finally beat it now.
...after 30 mins... "How would you have improved this game?" "Can you make a problem that cannot be solved in this game?"
The second question is more interesting to me, because I know regexes better than Turing machine variants. I think I could give them the problem of accepting only balanced, nested "parentheses" with arbitrarily deep nesting or something similar (treating blue as open parentheses and red as close). Though they asked something close to that with the nasty "accept only bots with equal numbers of red and blue symbols" so maybe I'm wrong and I should look for some angle with incomputable functions, like the Busy Beaver.
Or you can just cheat and give the play a board that's too small (or limit them to too few pieces) for the problem to make it unsolvable.
The ability to use yellow and green makes me wonder if there's some way to solve the balanced parentheses problem, though. I quit to do something else before solving the "accept only equal numbers of red and blue" problem (alas, I wished it would let me write to balance the tape, then you could just loop until empty, write red blue and accept).
This would sure be a lot more fun than most programming tests. I had a lot of fun designing things like a "red eater" which took care of the .* in the problem asking you to match .*BB$ and trying to shave parts. I know I could get rid of several more if I had known how to flip them. I just hate seeing something and knowing there ought to be a way to simplify it further.
Worked perfectly until robot with only one empty space at the end of his tape was encountered.
Then I came up with much simpler solution.
Once I respecified the problem as "accept .*BB$" it became a lot easier to visualize. In particular, it showed me that I needed a junction at the end which passes only an empty tape. You can, in fact, code it up by creating a piece that accepts anything (except end of tape!), two pieces that accept blue, followed by one that accepts only the end of tape and wiring them together properly (which I leave as an exercise for the reader; I'd hate to spoil any of the problems too much).
WASD is just easier to use one-handed with the spacebar.
(Unless those have been added since I last played.)