Technote/JAVA RoboCode -ActionSchool Team - 2rd Pooh0216 2009. 5. 29. 11:22 package actionSchool; import java.awt.Color; import java.awt.Graphics2D; import actionSchool.jhlee.robocode.WorldModel; import actionSchool.jhlee.robocode.movement.Movement; import actionSchool.jhlee.robocode.movement.melee.MinimumRiskMovement; import actionSchool.jhlee.robocode.movement.oneOnOne.WaveSurfMovement; import actionSchool.jhlee.robocode.targeting.Gun; import actionSchool.jhlee.robocode.targeting.fast.CircularTargeting; import actionSchool.jhlee.robocode.targeting.log.PatternMatchTargeting; import actionSchool.jhlee.robocode.targeting.statistic.GuessFactorTargeting; import actionSchool.jhlee.robocode.util.Appearance; import robocode.AdvancedRobot; import robocode.BulletHitBulletEvent; import robocode.BulletHitEvent; import robocode.BulletMissedEvent; import robocode.DeathEvent; import robocode.HitByBulletEvent; import robocode.HitRobotEvent; import robocode.HitWallEvent; import robocode.RobotDeathEvent; import robocode.ScannedRobotEvent; import robocode.WinEvent; public class SilverZero extends AdvancedRobot{ private WorldModel worldModel; private static Gun gun; private static Movement movement; private static boolean isInitialized = false; private static boolean isMelee; private int hitBullet; private int missedBullet; private int totalBullet; public void run(){ worldModel = worldModel.getInstance(this); setColors(Color.RED, Color.BLACK, Color.BLUE); initRobot(); setAdjustGunForRobotTurn(true); setAdjustRadarForGunTurn(true); while(true){ if (isMelee && getOthers() == 1) { out.println("melee::strategy change!!"); movement = new WaveSurfMovement(this); isMelee = false; } movement.run(); gun.run(); execute(); } } private void initRobot() { isMelee = (getOthers() > 1) ? true : false; out.println("START!!"); if (!isInitialized) { if (!isMelee) { out.println("1on1"); movement = new WaveSurfMovement(this); gun = new PatternMatchTargeting(this); } isInitialized = true; } if (isMelee) { out.println("melee"); movement = new MinimumRiskMovement(this); gun = new PatternMatchTargeting(this); } } /////////////////////////////////////////////////////////// // event handle region // start!! @Override public void onBulletHit(BulletHitEvent event) { hitBullet++; movement.onBulletHit(event); } @Override public void onBulletHitBullet(BulletHitBulletEvent event) { missedBullet++; movement.onBulletHitBullet(event); } @Override public void onBulletMissed(BulletMissedEvent event) { missedBullet++; } @Override public void onHitByBullet(HitByBulletEvent event) { worldModel.onHitByBullet(event); movement.onHitByBullet(event); gun.onHitByBullet(event); } @Override public void onHitRobot(HitRobotEvent event) { movement.onHitRobot(event); } @Override public void onHitWall(HitWallEvent event) { } @Override public void onScannedRobot(ScannedRobotEvent event) { worldModel.onScannedRobot(event); movement.onScannedRobot(event); gun.onScannedRobot(event); } @Override public void onDeath(DeathEvent event) { } @Override public void onWin(WinEvent event) { } @Override public void onPaint(Graphics2D g){ } @Override public void onRobotDeath(RobotDeathEvent event) { movement.onRobotDeath(event); gun.onRobotDeath(event); } } 저작자표시 (새창열림)