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:
- 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%]
- 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%]
- 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
- 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.
- You get six points for every checkpoint (flag) you hit. You cannot run
over the same flag and get more points.
- 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.