Esempio n. 1
0
 public static int GroupSign(this PenguinGroup a)
 {
     if (a.Owner.Equals(game.GetEnemy()))
     {
         return(-1);
     }
     return(1);
 }
Esempio n. 2
0
        public static int GroupAmountAfterClash(this PenguinGroup a)
        {
            List <PenguinGroup> Groups =
                (from PenguinGroup i in game.GetAllPenguinGroups()
                 where !i.Owner.Equals(a.Owner) && i.Source.Equals(a.Destination) && a.Source.Equals(i.Destination)
                 select i
                ).ToList();
            int Amount = a.PenguinAmount;

            if (Groups.Count == 0)
            {
                return(Amount);
            }
            int JourneyLength = a.Source.GetTurnsTillArrival(a.Destination);

            foreach (PenguinGroup g in Groups)
            {
                if (g.TurnsTillArrival + a.TurnsTillArrival >= JourneyLength)
                {
                    Amount -= g.PenguinAmount;
                }
            }
            return(System.Math.Max(0, Amount));
        }