README
About
Prepared for ThoughtWorks by Tobin Harris
http://tobinharris.com
[email protected]
Explanation
MissionControl is where things kick off.
- It takes a program_text from it's operators
- It then parses that using the Parser
- It then takes the resultant syntax tree (a hash) and creates appropriate rovers
- It tells the rovers to deploy, which makes them run their commands (sequences of L,R or M)
- That's it!
Assumptions For Tobins Rover
- The text entered into a program follows a strict grammar. The parser is intolerant to violations of that grammar.
- Rovers are fire and forget. Once you drop them on the surface, they won't be re-programmed.
- Rovers die if they go out of bounds. The don't "bounce" off the bounds or intelligently re-orient themselves.
- Rovers operate in serial and don't get in each others way, so no need to worry about collision detection.
Excuses
Eh hem. Ruby is a second language for me compared to .NET. I'm still learning the idioms, so excuse any unnecessary long-handedness.