private int CalculateAdvantage(Plan plan)
 {
     IDictionary<IPlayer, int> scores = GameState.Players.ToDictionary(p => p, p => GameState.PlayerScore(p)+plan.Worth(p));
     if (scores[Player]>scores.Where(kvp => kvp.Key != Player).Max(kvp => kvp.Value))
         return scores.Where(kvp => kvp.Key != Player).Sum(kvp => scores[Player]-kvp.Value);
     return scores.Where(kvp => kvp.Key != Player && kvp.Value>scores[Player]).Sum(kvp => scores[Player]-kvp.Value);
 }