newCynic
Class Cynical

java.lang.Object
  |
  +--robocode._Robot
        |
        +--robocode.Robot
              |
              +--robocode._AdvancedRobot
                    |
                    +--robocode._AdvancedRadiansRobot
                          |
                          +--robocode.AdvancedRobot
                                |
                                +--newCynic.Cynical
All Implemented Interfaces:
java.lang.Runnable

public class Cynical
extends robocode.AdvancedRobot

Класс супервизор


Field Summary
 int _aliveRobotsCount
          Текущее количество других роботов.
 double _battleFieldHeight
          Размеры поля
 double _battleFieldWidth
          Размеры поля
 double _collisionDelta
          Допуск при определении коллизии
 double _currentEnegy
          Текущая уровень энерги.
private  SupervisorState _currentState
          Текущий объект-состояние
 long _currentTime
          Номер текущего шага.
private  Driver _driver
          Водитель робота
 java.util.Vector _events
          Список событий
private  Gunner _gunner
          Стрелок робота
 long _hits
          Количество попаданий.
 long _hittesByBullet
          Количество попаданий в нас.
 long _lastShotTime
          Момент последнего выстрела.
 long _misses
          Количество промахов.
private  Radar _radar
          Радар робота
 java.util.Random _randomizer
          Генератор случайных чисел.
 double _robotSize
          Размеры робота
 double _robotSizeHalved
          Размеры робота
private  TargetList _targets
          Список целей
 long _wallCollisions
          Количество столкновений со стенами.
static double BASE_FIRE_POWER
          Базовая энергия выстрела.
static double DOUBLE_PI
          2*Pi
static double ENERGY_CRITICAL_THRESHOLD
          Критически опасный уровень энергии.
static double ENERGY_NORMAL_THRESHOLD
          Нормальный уровень энергии.
static double ENERGY_WARNING_THRESHOLD
          Опасный уровень энергии.
static double FIRE_DELAY_CRITICAL
          Сколько времени можно не стрелять.
static double HALF_PI
          Pi/2
static double MAX_FIRE_POWER
          Максимальная энергия выстрела.
static double MAX_GUN_ROTATION_SPEED
          Максимальная скорость поворота пушки.
static double MAX_SPEED
          Максимальная линейная скорость.
static double PRECISION
          Точность вычислений
 
Fields inherited from class robocode.Robot
out
 
Fields inherited from class robocode._Robot
 
Constructor Summary
Cynical()
          Конструктор, устанавливающий объект-logger и переводящий автомат в начальное состояние.
 
Method Summary
private  void check_events()
          Считать все события из очереди.
private  void createDevices()
          Создание частей танка -- радар, водитель, стрелок, список целей.
private  void endTurnEvent()
          Конец шага.
static double getAngle(double x, double y)
          Вычислить угловую координату вектора.
static double getAngleDiff(double from, double to)
          Определить минимальную разницу между двумя углами с учетом перехода через ноль.
static double getBulletSpeed(double firepower)
          Расчитать скорость выстрела заданной мощности.
 SupervisorState getCurrentState()
          Получить текущее состояние.
 Driver getDriver()
          Получить водителя для данного робота.
 Gunner getGunner()
          Получить стрелка для данного робота.
 Radar getRadar()
          Получить радар данного робота.
 TargetList getTargets()
          Получить список целей для данного робота.
static void main(java.lang.String[] args)
           
static double normalizeAngle(double a)
          Приведение угла в диапазон от 0 до 2PI.
 void onBulletHit(robocode.BulletHitEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onBulletHitBullet(robocode.BulletHitBulletEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onBulletMissed(robocode.BulletMissedEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onDeath(robocode.DeathEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onHitByBullet(robocode.HitByBulletEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onHitRobot(robocode.HitRobotEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onHitWall(robocode.HitWallEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onRobotDeath(robocode.RobotDeathEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onScannedRobot(robocode.ScannedRobotEvent first_e)
          Обработка соответствующих событий среды robocode.
 void onWin(robocode.WinEvent first_e)
          Обработка соответствующих событий среды robocode.
 void run()
          Метод, вызывемый в начале каждого раунда.
 void setCurrentState(SupervisorState aCurrentState)
          Изменить текущее состояние.
private  void setDriver(Driver aDriver)
          Установить водителя для данного робота.
private  void setGunner(Gunner aGunner)
          Установить стрелка для данного робота.
private  void setRadar(Radar aRadar)
          Установить радар для данного робота.
private  void setTargets(TargetList aTargets)
          Установить список целей для данного робота.
private  void setUpParameters()
          Установка основных констант и параметров.
private  void setUpPriorities()
          Установка приоритета событий.
private  void showStatistics()
          Вывод статистики по раунду
protected  void z10_0_initializeAtStart()
          z10_0 : Инициализация при запуске.
protected  void z10_1_initializeAtNewRound()
          z10_1 : Инициализация в начале раунда
protected  void z10_2_requestInputParametersAtNewStep()
          z10_2 : Инициализация в начале шага.
protected  void z20_printRoundStatistics()
          z20 : Вывод статистики по раунду
 
Methods inherited from class robocode.AdvancedRobot
addCustomEvent, clearAllEvents, execute, getAllEvents, getBulletHitBulletEvents, getBulletHitEvents, getBulletMissedEvents, getDataDirectory, getDataFile, getDataQuotaAvailable, getDistanceRemaining, getEventPriority, getGunTurnRemaining, getHitByBulletEvents, getHitRobotEvents, getHitWallEvents, getRadarTurnRemaining, getRobotDeathEvents, getScannedRobotEvents, getTurnRemaining, isAdjustGunForRobotTurn, isAdjustRadarForGunTurn, isAdjustRadarForRobotTurn, onCustomEvent, onSkippedTurn, removeCustomEvent, setAhead, setBack, setEventPriority, setFire, setFireBullet, setInterruptible, setMaxTurnRate, setMaxVelocity, setResume, setStop, setStop, setTurnGunLeft, setTurnGunRight, setTurnLeft, setTurnRadarLeft, setTurnRadarRight, setTurnRight, waitFor
 
Methods inherited from class robocode._AdvancedRadiansRobot
getGunHeadingRadians, getGunTurnRemainingRadians, getHeadingRadians, getRadarHeadingRadians, getRadarTurnRemainingRadians, getTurnRemainingRadians, setTurnGunLeftRadians, setTurnGunRightRadians, setTurnLeftRadians, setTurnRadarLeftRadians, setTurnRadarRightRadians, setTurnRightRadians, turnGunLeftRadians, turnGunRightRadians, turnLeftRadians, turnRadarLeftRadians, turnRadarRightRadians, turnRightRadians
 
Methods inherited from class robocode._AdvancedRobot
endTurn, getGunHeadingDegrees, getHeadingDegrees, getMaxWaitCount, getRadarHeadingDegrees, getWaitCount, setTurnGunLeftDegrees, setTurnGunRightDegrees, setTurnLeftDegrees, setTurnRadarLeftDegrees, setTurnRadarRightDegrees, setTurnRightDegrees, turnGunLeftDegrees, turnGunRightDegrees, turnLeftDegrees, turnRadarLeftDegrees, turnRadarRightDegrees, turnRightDegrees
 
Methods inherited from class robocode.Robot
ahead, back, doNothing, finalize, fire, fireBullet, getBattleFieldHeight, getBattleFieldWidth, getEnergy, getGunCoolingRate, getGunHeading, getGunHeat, getHeading, getHeight, getName, getNumRounds, getOthers, getRadarHeading, getRoundNum, getTime, getVelocity, getWidth, getX, getY, resume, scan, setAdjustGunForRobotTurn, setAdjustRadarForGunTurn, setAdjustRadarForRobotTurn, setColors, stop, stop, turnGunLeft, turnGunRight, turnLeft, turnRadarLeft, turnRadarRight, turnRight
 
Methods inherited from class robocode._Robot
getBattleNum, getGunCharge, getGunImageName, getLife, getNumBattles, getRadarImageName, getRobotImageName, setGunImageName, setPeer, setRadarImageName, setRobotImageName, uninitializedException
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PRECISION

public static final double PRECISION
Точность вычислений

See Also:
Constant Field Values

DOUBLE_PI

public static final double DOUBLE_PI
2*Pi

See Also:
Constant Field Values

HALF_PI

public static final double HALF_PI
Pi/2

See Also:
Constant Field Values

MAX_GUN_ROTATION_SPEED

public static final double MAX_GUN_ROTATION_SPEED
Максимальная скорость поворота пушки.


MAX_SPEED

public static final double MAX_SPEED
Максимальная линейная скорость.

See Also:
Constant Field Values

MAX_FIRE_POWER

public static final double MAX_FIRE_POWER
Максимальная энергия выстрела.

See Also:
Constant Field Values

BASE_FIRE_POWER

public static final double BASE_FIRE_POWER
Базовая энергия выстрела.

See Also:
Constant Field Values

FIRE_DELAY_CRITICAL

public static final double FIRE_DELAY_CRITICAL
Сколько времени можно не стрелять.

See Also:
Constant Field Values

ENERGY_NORMAL_THRESHOLD

public static final double ENERGY_NORMAL_THRESHOLD
Нормальный уровень энергии.

See Also:
Constant Field Values

ENERGY_WARNING_THRESHOLD

public static final double ENERGY_WARNING_THRESHOLD
Опасный уровень энергии.

See Also:
Constant Field Values

ENERGY_CRITICAL_THRESHOLD

public static final double ENERGY_CRITICAL_THRESHOLD
Критически опасный уровень энергии.

See Also:
Constant Field Values

_battleFieldWidth

public double _battleFieldWidth
Размеры поля


_battleFieldHeight

public double _battleFieldHeight
Размеры поля


_robotSize

public double _robotSize
Размеры робота


_robotSizeHalved

public double _robotSizeHalved
Размеры робота


_collisionDelta

public double _collisionDelta
Допуск при определении коллизии


_aliveRobotsCount

public int _aliveRobotsCount
Текущее количество других роботов.


_currentTime

public long _currentTime
Номер текущего шага.


_randomizer

public java.util.Random _randomizer
Генератор случайных чисел.


_currentEnegy

public double _currentEnegy
Текущая уровень энерги.


_lastShotTime

public long _lastShotTime
Момент последнего выстрела.


_hits

public long _hits
Количество попаданий.


_misses

public long _misses
Количество промахов.


_hittesByBullet

public long _hittesByBullet
Количество попаданий в нас.


_wallCollisions

public long _wallCollisions
Количество столкновений со стенами.


_radar

private Radar _radar
Радар робота


_driver

private Driver _driver
Водитель робота


_gunner

private Gunner _gunner
Стрелок робота


_targets

private TargetList _targets
Список целей


_events

public java.util.Vector _events
Список событий


_currentState

private SupervisorState _currentState
Текущий объект-состояние

Constructor Detail

Cynical

public Cynical()
Конструктор, устанавливающий объект-logger и переводящий автомат в начальное состояние.

Method Detail

getCurrentState

public SupervisorState getCurrentState()
Получить текущее состояние.


setCurrentState

public void setCurrentState(SupervisorState aCurrentState)
Изменить текущее состояние.


run

public void run()
Метод, вызывемый в начале каждого раунда.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class robocode.Robot

onBulletHit

public void onBulletHit(robocode.BulletHitEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onBulletHit in class robocode.Robot

onBulletMissed

public void onBulletMissed(robocode.BulletMissedEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onBulletMissed in class robocode.Robot

onBulletHitBullet

public void onBulletHitBullet(robocode.BulletHitBulletEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onBulletHitBullet in class robocode.Robot

onScannedRobot

public void onScannedRobot(robocode.ScannedRobotEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onScannedRobot in class robocode.Robot

onRobotDeath

public void onRobotDeath(robocode.RobotDeathEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onRobotDeath in class robocode.Robot

onHitRobot

public void onHitRobot(robocode.HitRobotEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onHitRobot in class robocode.Robot

onHitWall

public void onHitWall(robocode.HitWallEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onHitWall in class robocode.Robot

onHitByBullet

public void onHitByBullet(robocode.HitByBulletEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onHitByBullet in class robocode.Robot

onWin

public void onWin(robocode.WinEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onWin in class robocode.Robot

onDeath

public void onDeath(robocode.DeathEvent first_e)
Обработка соответствующих событий среды robocode.

Overrides:
onDeath in class robocode.AdvancedRobot

z10_0_initializeAtStart

protected void z10_0_initializeAtStart()
z10_0 : Инициализация при запуске.


createDevices

private void createDevices()
Создание частей танка -- радар, водитель, стрелок, список целей.


setUpParameters

private void setUpParameters()
Установка основных констант и параметров.


setUpPriorities

private void setUpPriorities()
Установка приоритета событий.


z10_1_initializeAtNewRound

protected void z10_1_initializeAtNewRound()
z10_1 : Инициализация в начале раунда


z10_2_requestInputParametersAtNewStep

protected void z10_2_requestInputParametersAtNewStep()
z10_2 : Инициализация в начале шага.


z20_printRoundStatistics

protected void z20_printRoundStatistics()
z20 : Вывод статистики по раунду


check_events

private void check_events()
Считать все события из очереди.


endTurnEvent

private void endTurnEvent()
Конец шага.


showStatistics

private void showStatistics()
Вывод статистики по раунду


getBulletSpeed

public static double getBulletSpeed(double firepower)
Расчитать скорость выстрела заданной мощности.


normalizeAngle

public static double normalizeAngle(double a)
Приведение угла в диапазон от 0 до 2PI.


getAngleDiff

public static double getAngleDiff(double from,
                                  double to)
Определить минимальную разницу между двумя углами с учетом перехода через ноль.


getAngle

public static double getAngle(double x,
                              double y)
Вычислить угловую координату вектора.


getRadar

public Radar getRadar()
Получить радар данного робота.


setRadar

private void setRadar(Radar aRadar)
Установить радар для данного робота.


getDriver

public Driver getDriver()
Получить водителя для данного робота.


setDriver

private void setDriver(Driver aDriver)
Установить водителя для данного робота.


getGunner

public Gunner getGunner()
Получить стрелка для данного робота.


setGunner

private void setGunner(Gunner aGunner)
Установить стрелка для данного робота.


getTargets

public TargetList getTargets()
Получить список целей для данного робота.


setTargets

private void setTargets(TargetList aTargets)
Установить список целей для данного робота.


main

public static void main(java.lang.String[] args)