public class BeerSonnet extends AdvancedRobot { public void run() { setAdjustRadarForGunTurn(true); // 1 setTurnRadarRight(Double.POSITIVE_INFINITY); // 2 printBottles(); // 3 } public void onScannedRobot(ScannedRobotEvent e) { setTurnRadarLeft(getRadarTurnRemaining()); // 4 double absoluteBearing = getHeadingRadians() + e.getBearingRadians() + (Math.random() < 0.5 ? 1 : -1) * (Math.random() / getOthers()); // 5 turnGunRightRadians(Util.normalRelativeAngle(absoluteBearing - getGunHeadingRadians())); // 6 fire(3); // 7 } public void onRobotDeath(RobotDeathEvent e) { printBottles(); // 8 } private void printBottles() { out.println(bottles()); // 9 if (getOthers() > 0) { out.println("Take " + (getOthers() == 1 ? "it" : "one") + " down, and pass it around"); // 10 } else { out.println("Now they are all gone"); // 11 } } private String bottles() { String bottleCount = bottles(getOthers()); // 12 return bottleCount + " on the wall, " + bottleCount; // 13 } private String bottles(int bottles) { return (bottles == 0 ? "No" : "" + bottles) + " bottle" + (bottles == 1 ? "" : "s") + " of beer"; // 14 } }