public void step() { if (hasPuck()) // If we have the puck. skate(2600, 0, 1000); // Skate towards the goal. else if (Util.dist( getX() - getPuck().getX(), // If the puck is within 5m. getY() - getPuck().getY()) < 500) skate(getPuck(), 1000); // Get puck else { IPlayer best = null; for (int i = 0; i < 12; ++i) { // Loop through all players. IPlayer cur = getPlayer(i); if (cur.isOpponent() && // If player is opponent... (best == null || Util.dist( getX() - cur.getX(), // ...and closest so far... getY() - cur.getY()) < Util.dist(getX() - best.getX(), getY() - best.getY()))) best = cur; // ...save player. } skate(best, 1000); // Tackle closest opponent. } }