Assignment Three: Code Rally


Questions should be emailed to jarito AT lehigh DOT edu.


Decription

What is Code Rally?
CodeRally is a Java-based, real-time programming game based on the Eclipse platform. It uses the Eclipse platform and a very simple API that allows users unfamiliar with Java to easily compete while they learn the Java language. CodeRally was first used at the 2003 ACM International Collegiate Programming Competition, which was sponsored by IBM.

How Does it Work?
Players develop a rally car and make decisions about when to speed up, turn, or slow down based on the location of other players or checkpoints, their current fuel level, and other factors. Each player can test their car locally against a number of sample rally cars.

When used in a tournament, CodeRally allows direct, real-time competition between teams. Each player can submit intermediate solutions and test them against the submitted cars from other players. This allows each player to learn from the strategies of other players and modify their car appropriately. After the final submission from each player, the final winner is determined by a tournament consisting of several rounds.

Installation

If you already installed Code Ruler you should be able to create a Code Rally project the same way you created Code Ruler. If you haven't installed Code Ruler or Code Rally, download the Alphaworks games package from here. Installation instructions for Code Ruler are here (local mirror). The instructions for Code Rally are the same as the ones for Code Ruler.

Assignment

You are tasked with creating the best racer you can. Your submissions will be ranked by the final scores generated by the Code Rally program. The bracket used will be the same as the one used for the Robocode assignment and is reproduced below.

In this example, there are four teams. In the first round, team one and three win. They move on in the bracket while team two and four are entered into the "Loser's Bracket". In the next round, one and three and two and four square off. Team one wins and moves on while team three faces the winner from the two and four match. Teams two and three then play with team two moving on to face the winner of the winner's bracket. The championship is the winner of the winner's bracket vs. the winner of the loser's bracket. In this case, teams one and two duke it out with team two being the overall winner.

As this competition will happen in one day no changes will be allowed to the racer in between matches. The second test will be a free for all where all racers are pitted against all other racers in the same arena. The winner will be the racer with the highest score as seen below:

You will need to turn in your racer before the due date. There are three parts to this assignment:

  1. The Racer - Once your racer is complete, zip it up and turn it in. While you will not be graded on your racer's performance in the tournament, you will be graded on the quality of your implementation. That means the if your racer gets stuck or crashes you will lose points. This will also include a code audit for commenting, design and other coding standards. [20%]
  2. Writeup - A one page write up of the ideas you used in creating your racer. For example, how does it detect enemies? Avoid attacks? Manage its energy levels? [40%]
  3. Presentation - A 1-3 slide power point presentation giving the basics of your racer design. What makes your racer different? Why will it win? This must be short (ie. Less than 3 minutes), lengths will be strictly enforced since we all want to get to the battles, right? [40%]

Hints

  1. There is no documentation on the web so you can use the Eclipse built in documentation or use Eclipse to build the Java-Docs so you can use them seperately. There is a copy of the Code Rally documentation online here.
  2. You get six points for every checkpoint (flag) you hit. You cannot run over the same flag and get more points.
  3. You must park over a fuel depot and wait for the tank to fill. You can leave at any time, but as soon as you do, the fueling will stop.