public class TeamRobot extends AdvancedRobot implements ITeamRobot, ITeamEvents
AdvancedRobot
and provides
support for sending messages between team members.
Besides the robots, a robot team is put together by defining a .team file
that is a Java property file. The filename must be the name of the team
like e.g. MyFirstTeam.team
. And the .team file and team robots must
exist in the same folder (package name). But you can let the Robocode UI
help you create the team from the menu: Robot -> 'Create a robot team'.
The .team file contains a comma-separated list of the full name of the team members:
team.members=sampleteam.MyFirstLeader,sampleteam.MyFirstDroidWith this example, two different robots are members (MyFirstLeader and MyFirstDroid). But you can include any TeamRobot you want.
If you have not done already, you should start by creating a Robot
or
AdvancedRobot
before you make your first TeamRobot.
Droid
,
AdvancedRobot
,
Robot
,
JuniorRobot
,
RateControlRobot
,
BorderSentry
out
Constructor and Description |
---|
TeamRobot() |
Modifier and Type | Method and Description |
---|---|
void |
broadcastMessage(Serializable message)
Broadcasts a message to all teammates.
|
Vector<MessageEvent> |
getMessageEvents()
Returns a vector containing all MessageEvents currently in the robot's
queue.
|
ITeamEvents |
getTeamEventListener()
Do not call this method!
|
String[] |
getTeammates()
Returns the names of all teammates, or
null there is no
teammates. |
boolean |
isTeammate(String name)
Checks if a given robot name is the name of one of your teammates.
|
void |
onMessageReceived(MessageEvent event)
This method is called when your robot receives a message from a teammate.
|
void |
sendMessage(String name,
Serializable message)
Sends a message to one (or more) teammates.
|
addCustomEvent, clearAllEvents, execute, getAdvancedEventListener, getAllEvents, getBulletHitBulletEvents, getBulletHitEvents, getBulletMissedEvents, getDataDirectory, getDataFile, getDataQuotaAvailable, getDistanceRemaining, getEventPriority, getGunHeadingRadians, getGunTurnRemaining, getGunTurnRemainingRadians, getHeadingRadians, getHitByBulletEvents, getHitRobotEvents, getHitWallEvents, getRadarHeadingRadians, getRadarTurnRemaining, getRadarTurnRemainingRadians, getRobotDeathEvents, getScannedRobotEvents, getStatusEvents, getTurnRemaining, getTurnRemainingRadians, isAdjustGunForRobotTurn, isAdjustRadarForGunTurn, isAdjustRadarForRobotTurn, onCustomEvent, onDeath, onSkippedTurn, removeCustomEvent, setAhead, setBack, setEventPriority, setFire, setFireBullet, setInterruptible, setMaxTurnRate, setMaxVelocity, setResume, setStop, setStop, setTurnGunLeft, setTurnGunLeftRadians, setTurnGunRight, setTurnGunRightRadians, setTurnLeft, setTurnLeftRadians, setTurnRadarLeft, setTurnRadarLeftRadians, setTurnRadarRight, setTurnRadarRightRadians, setTurnRight, setTurnRightRadians, turnGunLeftRadians, turnGunRightRadians, turnLeftRadians, turnRadarLeftRadians, turnRadarRightRadians, turnRightRadians, waitFor
endTurn, getGunHeadingDegrees, getHeadingDegrees, getMaxWaitCount, getRadarHeadingDegrees, getWaitCount, setTurnGunLeftDegrees, setTurnGunRightDegrees, setTurnLeftDegrees, setTurnRadarLeftDegrees, setTurnRadarRightDegrees, setTurnRightDegrees, turnGunLeftDegrees, turnGunRightDegrees, turnLeftDegrees, turnRadarLeftDegrees, turnRadarRightDegrees, turnRightDegrees
ahead, back, doNothing, fire, fireBullet, getBasicEventListener, getBattleFieldHeight, getBattleFieldWidth, getEnergy, getGraphics, getGunCoolingRate, getGunHeading, getGunHeat, getHeading, getHeight, getInteractiveEventListener, getName, getNumRounds, getNumSentries, getOthers, getPaintEventListener, getRadarHeading, getRobotRunnable, getRoundNum, getSentryBorderSize, getTime, getVelocity, getWidth, getX, getY, onBattleEnded, onBulletHit, onBulletHitBullet, onBulletMissed, onHitByBullet, onHitRobot, onHitWall, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragged, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onMouseWheelMoved, onPaint, onRobotDeath, onRoundEnded, onScannedRobot, onStatus, onWin, resume, run, scan, setAdjustGunForRobotTurn, setAdjustRadarForGunTurn, setAdjustRadarForRobotTurn, setAllColors, setBodyColor, setBulletColor, setColors, setColors, setDebugProperty, setGunColor, setRadarColor, setScanColor, stop, stop, turnGunLeft, turnGunRight, turnLeft, turnRadarLeft, turnRadarRight, turnRight
getBattleNum, getGunCharge, getGunImageName, getLife, getNumBattles, getRadarImageName, getRobotImageName, setGunImageName, setRadarImageName, setRobotImageName
finalize, setOut, setPeer, toString
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAdvancedEventListener
getBasicEventListener, getRobotRunnable, setOut, setPeer
public void broadcastMessage(Serializable message) throws IOException
Example:
public void run() { broadcastMessage("I'm here!"); }
message
- the message to broadcast to all teammatesIOException
- if the message could not be broadcasted to the
teammatesisTeammate(String)
,
getTeammates()
,
sendMessage(String, Serializable)
public Vector<MessageEvent> getMessageEvents()
Example:
for (MessageEvent e : getMessageEvents()) { // do something with e }
onMessageReceived(MessageEvent)
,
MessageEvent
public final ITeamEvents getTeamEventListener()
This method is called by the game to notify this robot about team events.
Hence, this method must be implemented so it returns your
ITeamEvents
listener.
getTeamEventListener
in interface ITeamRobot
null
if this robot should
not receive the notifications.public String[] getTeammates()
null
there is no
teammates.
Example:
public void run() { // Prints out all teammates String[] teammates = getTeammates(); if (teammates != null) { for (String member : teammates) { out.println(member); } } }
null
if there is no teammates. The length of the String array
is equal to the number of teammates.isTeammate(String)
,
broadcastMessage(Serializable)
,
sendMessage(String, Serializable)
public boolean isTeammate(String name)
Example:
public void onScannedRobot(ScannedRobotEvent e) { if (isTeammate(e.getName()) { return; } fire(1); }
name
- the robot name to checktrue
if the specified name belongs to one of your
teammates; false
otherwise.getTeammates()
,
broadcastMessage(Serializable)
,
sendMessage(String, Serializable)
public void onMessageReceived(MessageEvent event)
Example:
public void onMessageReceived(MessageEvent event) { out.println(event.getSender() + " sent me: " + event.getMessage()); }
onMessageReceived
in interface ITeamEvents
event
- the message event sent by the gameMessageEvent
,
Event
public void sendMessage(String name, Serializable message) throws IOException
Example:
public void run() { sendMessage("sample.DroidBot", "I'm here!"); }
name
- the name of the intended recipient of the messagemessage
- the message to sendIOException
- if the message could not be sentisTeammate(String)
,
getTeammates()
,
broadcastMessage(Serializable)
Copyright © 2021 Robocode. All Rights Reserved.