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:

  1. 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
  2. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.