Seminar for Participants An Introduction on Robocode.

34
Seminar for Participants

Transcript of Seminar for Participants An Introduction on Robocode.

Page 1: Seminar for Participants An Introduction on Robocode.

Seminar for Participants

Page 2: Seminar for Participants An Introduction on Robocode.

An Introduction on Robocode

Page 3: Seminar for Participants An Introduction on Robocode.
Page 4: 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.

Page 5: Seminar for Participants An Introduction on Robocode.

Player must write a Java code that creates a robot that can:MoveShoot at other robotsScan for other robotsHit the walls and other robots

More Sophisticated TechniquesStatistical Analysis, Neural Networks

Page 6: Seminar for Participants An Introduction on Robocode.

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?

Page 7: Seminar for Participants An Introduction on Robocode.

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.

Page 8: Seminar for Participants An Introduction on Robocode.
Page 9: Seminar for Participants An Introduction on Robocode.
Page 10: Seminar for Participants An Introduction on Robocode.
Page 11: Seminar for Participants An Introduction on Robocode.

•Must be unique in a specific Robocode installation•Advised to be your initials

Page 12: Seminar for Participants An Introduction on Robocode.

•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.

Page 13: Seminar for Participants An Introduction on Robocode.

•Extending the right class determines the features that your robot can have:

•JuniorRobot•Robot•AdvancedRobot•RateControlRobot•TeamRobot

Page 14: Seminar for Participants An Introduction on Robocode.

Robot The Robot type where

most users start Like the JuniorRobot,

this class’ methods are blocking calls

Have getters and setters instead of public fields

AdvancedRobot Has non-blocking calls Support for custom

events Can write to the file

system

Page 15: Seminar for Participants An Introduction on Robocode.

•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.

Page 16: Seminar for Participants An Introduction on Robocode.
Page 17: Seminar for Participants An Introduction on Robocode.

How to win a battle?

Page 18: Seminar for Participants An Introduction on Robocode.

StatisticsTotal Score Survival ScoreLast Survivor Bonus Bullet Damage Bullet Damage BonusRam Damage Ram Damage Bonus **1sts, 2nds, 3rds

Page 19: Seminar for Participants An Introduction on Robocode.

BreakdownSurvival 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.

Page 20: Seminar for Participants An Introduction on Robocode.

BreakdownBullet 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.

Page 21: Seminar for Participants An Introduction on Robocode.

BreakdownTotal Score

All statistics are added to obtain the total score. The total score will determine the rank of the robot in the battle.

Page 22: Seminar for Participants An Introduction on Robocode.

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.

Page 23: Seminar for Participants An Introduction on Robocode.

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.

Page 24: Seminar for Participants An Introduction on Robocode.

WallsMoves around the outer edge (wall)

with the gun facing inA simple robot (inherited from class Robot)

A tricky robot; usually lasts the longest in the battlefield with other sample robots

Page 25: Seminar for Participants An Introduction on Robocode.

TargetSits stillMoves every time energy drops by 20An advanced robot (inherited from

class AdvancedRobot)

Page 26: Seminar for Participants An Introduction on Robocode.

Target

Page 27: Seminar for Participants An Introduction on Robocode.

SpinbotCharacteristics

Body Color: Blue Gun Color: Blue Radar Color: Black Scan Color: Yellow

Behavior Moves in a circle, firing hard when an

enemy is detected

Page 28: Seminar for Participants An Introduction on Robocode.

SpinbotAdditional Info

Inherited from Advanced Robot Has a damage of 16 Has a maximum speed of 5(in pixels)

Page 29: Seminar for Participants An Introduction on Robocode.

RamfireCharacteristics

Body Color: light Gray Gun Color: Gray Radar Color: Dark Gray

Behavior Drives at robots trying to ram them, fires

when it hits them.

Page 30: Seminar for Participants An Introduction on Robocode.

RamfireAdditional Info

Inherited from Robot Has a damage from 4 - 16

Page 31: Seminar for Participants An Introduction on Robocode.

Trackerbasically locks onto a robot, moves close

to it, then fires when close

Page 32: Seminar for Participants An Introduction on Robocode.

Tracker

Page 33: Seminar for Participants An Introduction on Robocode.

TrackFirea still robot.; it just tracks and fires at

the nearest robot it sees

Page 34: Seminar for Participants An Introduction on Robocode.

http://robowiki.net/w/index.php?title=Robocode/Scoring

http://en.wikipedia.org/wiki/Robocode

http://robowiki.net/wiki/Robocode/Game_Physics