Robocode Seminar for Participants

Download Report

Transcript Robocode Seminar for Participants

Seminar for Participants
An Introduction on Robocode
 The Brainchild of Matthew Nelson
 A software engineer in the Advanced
Technology, Internet Division at IBM
 A game that allows players to create and
control a robot in the Java programming
language
 The goal is to be the last robot standing
while being the best scorer.
 Simple to learn, difficult to master like
chess.
 Player must write a Java code that creates a
robot that can:
Move
 Shoot at other robots
 Scan for other robots
 Hit the walls and other robots

 More Sophisticated Techniques

Statistical Analysis, Neural Networks
 To help people in learning the Java program
while enjoying the experience
 To help people in learning programming
concepts such as control statements, method
declarations, inheritance and event handling.
 To sharpen strategic skills
 For the excitement of competition
 For prices?
 Body - Carries the gun with the radar on
top.
 Gun - Mounted on the body and is used for
firing
energy bullets.
 Radar - Mounted on the gun and is used to
scan
for other robots when moved.
•Must be unique in a specific
Robocode installation
•Advised to be your initials
•Import necessary Robocode
classes, including the type of
robot you will be using
•You can also import any
relevant Java classes including
the standard Java classes
java.awt.Color; java.util.Random; Event objects of MouseListener, etc.
•Extending the right class
determines the features that
your robot can have:
•JuniorRobot
•Robot
•AdvancedRobot
•RateControlRobot
•TeamRobot
Robot
AdvancedRobot
 The Robot type where
 Has non-blocking calls
most users start
 Like the JuniorRobot, this
class’ methods are
blocking calls
 Have getters and setters
instead of public fields
 Support for custom events
 Can write to the file system
•Literally, the life of your
robot
•Majority of the code resides
here
•The body outside the loop is
used to ready the robot, i.e.
setting colors, positioning the
robot, etc.
•The body inside the loop is
used for logic that is not
dependent on any event and
is supposed to be repeated,
i.e. moving though the
battlefield.
 How to win a battle?
 Statistics
Total Score
 Survival Score
 Last Survivor Bonus
 Bullet Damage
 Bullet Damage Bonus
 Ram Damage
 Ram Damage Bonus
 **1sts, 2nds, 3rds

 Breakdown

Survival Score
 Each
robot that's still alive scores 50 points every
time another robot dies.

Last Survivor Bonus
 The
last robot alive scores 10 additional points for
each robot that died before it.

Bullet Damage
 Robots
score 1 point for each point of damage they
do to enemies.
 Breakdown

Bullet Damage Bonus
 When
a robot kills an enemy, it scores an additional
20% of all the damage it did to that enemy.

Ram Damage
 Robots
score 2 points for each point of damage they
cause by ramming enemies.

Ram Damage Bonus
 When
a robot kills an enemy by ramming, it scores
an additional 30% of all the damage it did to that
enemy.
 Breakdown

Total Score
 All
statistics are added to obtain the total score. The
total score will determine the rank of the robot in
the battle.
 Additional
**1sts, 2nds, 3rds
 These do not actually contribute to score.
 But they are shown to indicate how long the robot
survived. They also show the number of rounds
the robot was placed 1st, 2nd, and 3rd.

 How to win a battle?
 LAST ROBOT STANDING
The last surviving robot does not necessarily
indicates the winner in a battle.
Reminder:
The total score is computed by adding the
different statistics of the robot.
Even if your robot survived because it has
more energy than the others, if it only saves
energy and the other robots killed other robots,
they will gain more points.
 Walls
 Moves around the outer edge (wall) with the
gun facing in
 A simple robot (inherited from class Robot)
 A tricky robot; usually lasts the longest in the
battlefield with other sample robots
 Target
 Sits still
 Moves every time energy drops by 20
 An advanced robot (inherited from class
AdvancedRobot)
 Target
 Spinbot

Characteristics
 Body Color: Blue
 Gun Color:
Blue
 Radar Color: Black
 Scan Color: Yellow

Behavior
 Moves
in a circle, firing hard when an enemy is
detected
 Spinbot

Additional Info
 Inherited
from Advanced Robot
 Has a damage of 16
 Has a maximum speed of 5(in pixels)
 Ramfire

Characteristics
 Body Color: light Gray
 Gun Color: Gray
 Radar Color:

Dark Gray
Behavior
 Drives
at robots trying to ram them, fires when it
hits them.
 Ramfire

Additional Info
 Inherited
from Robot
 Has a damage from 4 - 16
 Tracker

basically locks onto a robot, moves close to it,
then fires when close
 Tracker
 TrackFire

a still robot.; it just tracks and fires at the nearest
robot it sees
 http://robowiki.net/w/index.php?title=Roboc
ode/Scoring
 http://en.wikipedia.org/wiki/Robocode
 http://robowiki.net/wiki/Robocode/Game_Ph
ysics