Assignment Two: Robocode Continued
Questions should be emailed to (Eric)
ecl3 AT lehigh DOT edu
Description
In this assignment we will be adding capabilities to our Robot. We will be using
the Team Robot class and adding the ability for each team to use multiple robots.
Assignment
Using the same process you used to create your first robot, you should create
a robot team containing four bots. These bots can be combined in any way you
see fit. Your entry will be tested in
two ways. The first is the standard attrition ladder int the winner / loser style.
All initial match ups will be determined by random. If there is an odd number of
robots, one will be given a pass in the first round. An example ladder is 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 bot
in between matches. The second test will be a free for all where all bots are
pitted against all other bots in the same arena. After 10 rounds, Robocode will
produce a synopsis of the battle. An example is below.
You will need to turn in your bot as follows. There are two parts to this assignment:
- The Bot - Once your bot is complete, go under the Robot menu and select
"Package robot for upload". In the resulting dialog make sure to include all
the names of your group members. While you will not be graded on your bot's
performance in the tournament, you will be graded on the quality of your
implementation. That means the if your bot gets stuck in a corner for 10
minutes, you will lose points. This will also include a code audit for
commenting, design and other coding standards. [20%]
Please e-mail the JAR file to ecl3 AT lehigh DOT edu
no later than 11:59PM EST on the day BEFORE the competition
- Presentation - A 1-3 slide power point presentation giving the basics of
your bot design. What makes your bot 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%] Please e-mail the presentation to munoz at cse
dot lehigh dot edu no later than 11:00AM on the day of the competition
FAQ
- You cannot assume that the battlefield will be of a specific
size. Your bot must adjust to all possible sizes. See the
getBattleFieldWidth and getBattleFieldHeight methods for details.
- Team names must be short and sweet as well as not containing
any words that might offend the University. Names like
ThisBotIsTheCoolestAndWillOwnz0rAllOtherBotsInTheUniverse will be
disqualified. Use your common sense.
- You must manage your gun's heat! You can only fire your gun
when the heat == 0. You will need to use the cooling rate and energy
of each shot to manage the gun's heat.
- No overriding the onDeath method to do anything t5hat is clearly an exploid. If
you die, you die. You can't respawn, or pop up a window, or play
some Windows sound. Same with onRobotDeath. Just don't interrupt the
match to taunt the guy you just killed and you will be fine.
- Inheriting from the AdvancedRobot class will be helpful in
writing an advanced bot. Your bot may write to files to improve
it's AI. However, keep the writing to a minimum. If all the bots
are spewing out tons of information, the battle will be very slow.
- Use the examples! While the
example bots are pretty useless, each one implements a feature that
might be of interest to you. Combine some of these together and you
will get some useful behavior.