In the 1990s, Sierra Entertainment developed a series of educational computer games called “Dr. Brain” (indeed, Dr. Kawashima was not the first one to use his doctoral title to sell edutainment). In the third installment of the series from 1994, called The lost mind of Dr. Brain, a puzzle called “Motor Programming” was introduced, apparently inspired by the Logo programming language. The goal is to guide the dog Rathbone towards a brain (Dr. Brain’s brain) by using simple instructions like ‘forward’, ‘turn left’, etcetera. In this game’s simplistic programming language there are no loops nor recursion, only subroutines. The challenge of the puzzle is that only a limited number of instructions are allowed, and only two subroutines (also with a limited number of instructions each).
This puzzle has now also reached the iPhone, in different guises, and through a twisted path of attribution and inspiration.
As far as I can reconstruct the history, the first to take over Dr. Brain’s puzzle was Matt Chase, who wrote a flash version in 2004 called Bill the Robot. He introduced the option to have multiple goals in one puzzle, so somewhat more complex puzzles became possible. This game was the inspiration for Daniel Yaroslavski, who made a flash version called Light-Bot in 2008. He introduced the possibility to use recursion, i.e. a subroutine can call itself. I did not actually get to a level in which recursion is necessary, but again this addition allows for much more complexity compared to the original Dr. Brain version.
Light-Bot was then adapted for the iPhone by Alcomi as iBot. However, this version was such a blatant copy of Light-Bot, that in the end this version was made available directly from Daniel Yaroslavsky through Armor Games as LightBot (iTunes Link, a screenshot is shown to the left). The game is very well made, with a very nice user interface. Matt Chase is mentioned in the liner notes (that is how I got to know about him). However, the original conceptual link to Dr. Brain is not mentioned (you learned that here).
Some time earlier, another similar iPhone game became available in the app store: Robo Logic (and the lite version RoboLogic Lite, shown here to the right). There is no mentioning of its origin, and in response to my question, the developer simply says that the “concept is not new and [my] levels are completly different.” This seems to be the normal reaction towards games and puzzles: a game-concept is free for all, and no reference is needed to its origin. I think this attitude is very unfortunate, to say the least. The functionality of Robo Logic indicates that the conceptual origin is Matt Chase’s Bill the Robot, because the idea of multiple goals is available, but recursion is not possible (as in LightBot). Still, Robo Logic is a nice game, though the user interface is slightly more cumbersome than LightBot because every instruction has to be dragged to its place in the program.
Check them out, and tell me if you find a level in LightBot where recursion is necessary!
[Update 22 february 2009] I have spent some more time with LightBot and this was very pleasurable time spent indeed. Recursion was not necessary, but the puzzles are still very interesting. Unfortunately, there are only 15 levels, but after level 10 the difficulty rises strongly. In particular level 12 was a challenge (my solution is shown here to the left).
There are a few idiosyncrasies in the way how the robot reacts to the instructions that are not mentioned in the help files, but which are important to be able to solve the higher levels:
- Jumping goes only one level up, but down as far as you want
- Going forward is ignored at an edge, i.e. to step down you have to use a jump
- Using the lightning-instruction is a switch, i.e. you will both turn a light on and out by using it.
- Using a lightning-instruction is ignored on normal tiles.
To explain the difficulty of level 12: the route to the finish is 31 instructions long. The problem is that by simple concatenating the subroutines there is a maximum of (12-1)+(8-1)+8=26 instructions possible. So you have to use some subroutines more than once. By nesting subroutines (without recursion), the theoretical maximum of instructions possible is 12*8*8=768, but that only allows for very repetitive movement patterns. The difficulty of level 12 is that the route has almost no repetitions! The trick is to use subroutines that contain instructions that are ignored in many situations (like a move straight on the brink of a drop). My solution in the end contained 69 instructions of which more than half were ignored!
Is this level really that difficult, or did I miss something? Does somebody have a shorter solution? By the way, LightBot is a free download…
[Update 9 April 2009] As requested in the comments, I added a screenshot with my solution of level 14.
8 April 2009 at 10:05
I solved Level 12 as follows:
Main: F1, F2, Light, Turn Left, Jump, Turn Left, F1, Turn Right, Jump, Jump, Step, Light.
F1: Step, Step, Step, Jump, Turn Left, Jump, Jump
F2: Turn Left, Jump, Turn Left, Step, Turn Right, Jump, Step, Step
Works perfectly with no wasted steps :-)
The level that I am currently stuck on and cannot get past is Level 14. Any suggestions?
Phyllis
9 April 2009 at 12:33
Oh my, you are completely right, Phyllis! I completely ignored this order of lighting the tiles. My solution takes a different order of lighting the two tiles. This actually points to an interesting extension of this puzzle: prescribe a fixed order in which the tiles have to be turned on. Then things can become even more difficult!
as for level 14: I have added a screenshot to the post with my solution. Unfortunately solutions are not saved inside the app (a minor annoyance), but fortunately I made this screenshot!
Michael
22 May 2009 at 9:59
Lightbot (I played the flash version) is indeed very nice, but immediate complaint is that it’s *way* too easy. When I was done with what I thought was the tutorial, the whole thing was over.
It’s also questionable wheter or not an actually interesting puzzle can be constructed in such a limited context. Seeing this problem reminds me of corewars, which, despite being far more complex had the same problem. There, the problem/solution space is much bigger, but in reality, using one of a few short, but non-intuitive snippets is pretty much necessary to be a contender.
Another complaint is that it isn’t clear if the instruction counter counts instructions executed or program size. (Playing through once got me a count of 189, trying again got me 182, both attempts far from flawless.)
Finally, the recursion offered is much less interesting than you might think, since it has to be infinite recursion. The final move must occur in the recursion, otherwise, it’ll just keep going.
13 May 2011 at 3:56
Motor Programming already had multiple goals — in fact, the first Genius-level (red) puzzle has 42 brains to collect! Instructions could also be skipped if the Dr. Brain figure controlled by the program collided with a wall or a bug. (No, he’s not a dog, nor is he Rathbone the lab rat. Rathbone takes a different form in each of the ten puzzles — in this one, he’s the robot to the left of the grid.)
A playthrough of the first three Motor Programming puzzles on Genius level is available on Youtube: http://www.youtube.com/watch?v=xqDGPYMcWGk
On an entirely different note, what purpose does requiring a name and e-mail address serve? It apparently doesn’t stop me from giving a pseudonym and someone else’s address — in this case, someone who spammed me — so at the most, it only keeps out people who don’t want to risk getting spam in order to comment AND don’t know the e-mail address of anyone else they’d be willing to pass that risk onto. (And that’s even assuming it has to be a valid e-mail address — if not, anyone can post just by saying they’re Anonymous and their address is skldffdsnhk@aol.com.) It seems to be WordPress that requires this, since I’ve seen the same requirement on other blogs.