private void printMeleeScores(BattleScore lastScore, BattleScore avgScore,
      String challenger, ScoringStyle scoringStyle) {
    RobotScore challengerScore = lastScore.getRobotScore(challenger);
    RobotScore avgChallengerScore = avgScore.getRobotScore(challenger);

    Map<RobotScore, RobotScore> avgScoreMap = Maps.newHashMap();
    List<RobotScore> avgRobotScores =
        Lists.newArrayList(avgScore.getRobotScores());
    avgRobotScores.remove(avgChallengerScore);
    for (RobotScore robotScore : lastScore.getRobotScores()) {
      if (robotScore != challengerScore) {
        Iterator<RobotScore> avgRobotScoreIterator = avgRobotScores.iterator();
        while (avgRobotScoreIterator.hasNext()) {
          RobotScore avgRobotScore = avgRobotScoreIterator.next();
          if (robotScore.botName.equals(avgRobotScore.botName)) {
            avgScoreMap.put(robotScore, avgRobotScore);
            avgRobotScoreIterator.remove();
            break;
          }
        }
      }
    }
    for (RobotScore robotScore : lastScore.getRobotScores()) {
      if (robotScore != challengerScore) {
        RobotScore relativeScore = challengerScore.getScoreRelativeTo(
            robotScore, lastScore.getNumRounds());
        RobotScore avgRelativeScore = avgChallengerScore.getScoreRelativeTo(
            avgScoreMap.get(robotScore), avgScore.getNumRounds());
        System.out.println("    vs " + robotScore.botName + ": "
            + round(scoringStyle.getScore(relativeScore), 2)
            + ", avg: "
            + round(scoringStyle.getScore(avgRelativeScore), 2));
      }
    }
  }