Our submission is written in the Rhope programming language using a modified version of the Alpha 2 interpretter release. The modified source for the interpreter is in the src/rhope_interpretter folder. Source code specifically written for the Rover itself (currently just rover.rhope and a bash script) are in src/rover.

Our rover controller isn't terribly sophisticated. It ignores both "adverse" events and round completion events. It keeps track of no state between telemetry messages apart from the initial parameters. The rover tracks in the direction of the home base and then adjusts its heading to avoid obstacles. When attempting to avoid an obstacle it chooses the direction to turn based on which one requires the smallest turn from the current direction. For this calculation the current direction is adjusted if the rover is already turning, effectively favoring the direction it's already turning in. For martians, the collision check code checks that the desired path doesn't intersect with a line 3 turns long (based on the martian's current speed) along with checking against collisions at the current position.

I'm not terribly happy with our solution. Our rover does reasonably well on the sample maps, but I suspect in the actual contest we will do poorly as there are too many constants in the code determined through experimentation that really should be based on the environment parameters. Our lame pathfinding algorithm is also likely to be a source of trouble. On the plus side, our choice of language was not a major hurdle this year. Last year, Rhope was really too immature and we spent most of the contest trying to fix bugs in the language rather than working on our entry.  I did stumble across one or two bugs this year and I had to add a few operations like Sine and Cosine to the interpretter, but those were only minor distractions.

More information on the Rhope programming language is available at http://rhope.retrodev.com/
