package session2; import java.awt.Color; import robocode.*; public class MyFirstRobotSamantha extends Robot { /*Robot for one on one and brawl.*/ double times = 0; double times2 = 0; // double enemyEnergy = 100; public void run(){ setRobotColors(); this.setAdjustGunForRobotTurn(true); while(true){ turnGunRight(360); checkNumberOfRobots(); ahead(100); } } private void checkNumberOfRobots(){ int others = getOthers(); System.out.println("There are "+ others + " other robots"); } private void setRobotColors(){ setColors(Color.CYAN, Color.GREEN,Color.YELLOW,Color.RED,Color.ORANGE); } private void turnTo(double degrees){ turnRight(degrees-getHeading()); } public void onScannedRobot(ScannedRobotEvent e){ System.out.println("I scanned a robot "+ times + (" times")); times++; double enemyEnergy=e.getEnergy(); double distanceToEnemy=e.getDistance(); double enemyBearing=e.getBearing(); double absoluteBearing=enemyBearing + getHeading(); double enemyDistX=distanceToEnemy*EpgyUtil.sin(absoluteBearing); double enemyDistY=distanceToEnemy*EpgyUtil.cos(absoluteBearing); double enemyX=getX()+enemyDistX; double enemyY=getY()+enemyDistY; System.out.println("Enemy Coordinate is at " + enemyX + ", " + enemyY + "."); double enemyVelocity=e.getVelocity(); if (e.getVelocity()>=0 && e.getVelocity()<=2 ){ double guess = .5; turnGunRight(absoluteBearing-getGunHeading() + guess); fire(3); }else if (e.getVelocity()>=3 && e.getVelocity()<=6 ){ double guess = 1.5; turnGunRight(absoluteBearing-getGunHeading() + guess); fire(2); }else if (e.getVelocity()>=6 && e.getVelocity()<=8 ){ double guess = 2; turnGunRight(absoluteBearing-getGunHeading() + guess); fire(2); }else{ turnGunRight(absoluteBearing-getGunHeading()); fire(2); turnTo(absoluteBearing); fire(1); } double distanceToEnemyTwo=500; if (distanceToEnemy>distanceToEnemyTwo){ turnTo(absoluteBearing); //change right here// ahead(50); } double energyDifference=e.getEnergy()-enemyEnergy; if(energyDifference>=0.1&&energyDifference<=3.0){ System.out.println("Enemy Fired."); //change right here// turnRight(90); ahead(50); } enemyEnergy=e.getEnergy(); } // double enemyEnergyTwo=e.getEnergy(); // if (enemyEnergy>enemyEnergyTwo){ // turnRight(30); // ahead(30); // turnLeft(30); // } /*Tells the robot what to do in the event of being hit by a bullet.*/ public void onHitByBullet(HitByBulletEvent e){ System.out.println("I've been shot."); turnRight(e.getBearing()); //change right here// // ahead(25); scan(); } /*Tells the robot what to do in the event of hitting another robot with a bullet.*/ public void onBulletHit (BulletHitEvent e){ System.out.println("I've shot another robot "+ times2 + (" times")); times++; stop(); fire(1); } }