You can download our Java implementation of this game from the Git repository MarioAI. If you need help importing it into Eclipse, see the excellent slides that Jakub Gemrot wrote explaining how to do this.
The game generates each level randomly, so your agent might succeed on some randomly generated levels and fail on others. I will evaluate your agent on a series of levels generated in several configurations:
LEVEL_0_FLAT: flat, empty terrain
LEVEL_1_JUMPING: terrain with hills, but no enemies
LEVEL_2_GOOMBAS: like LEVEL_1, but also with Goombas (a kind of monster)
LEVEL_3_TUBES: like LEVEL_2, but also with pipes with dangerous plants
Your agent succeeds if it makes it to the end of each level, and fails otherwise. Its success rate is the fraction of randomly generated levels on which it succeeds.
This assignment is worth a total of 10 points. You can earn them as follows:
2 points: 100% success rate on LEVEL_0_FLAT
2 points: 95% success rate on LEVEL_1_JUMPING
4 points: 75% success rate on LEVEL_2_GOOMBAS
2 points: 75% success rate on LEVEL_3_TUBES
Do not forget that Mario can both jump and shoot! :)
For the tournament for this assignment we will use LEVEL_4_SPIKIES, which has hills, Goombas, pipes and Spikies. The winner will be the agent with the highest success rate. I will break ties by choosing the agent with the fastest time to finish all levels.