示例#1
0
        public override ArtificialIntelligenceResult Run(Manager manager, Pac pac)
        {
            var eatable = manager.Map.GetEatable().Where(x => x.MapType > MapType.Pellet && !x.IsOnPath).OrderBy(x => x.Position.TaxicabDistance(pac.Position, manager.Map)).FirstOrDefault();

            if (eatable != null && !pac.AreVisitingSuperPellet())
            {
                return(new ArtificialIntelligenceResult(eatable.Position));
            }
            return(this.InvokeNext(manager, pac));
        }
示例#2
0
 public override ArtificialIntelligenceResult Run(Manager manager, Pac pac)
 {
     if (manager.Pacs.Where(x => x != pac).Any(x => x.Position.TaxicabDistance(pac.Position, manager.Map) <= 2) && !pac.AreVisitingSuperPellet())
     {
         var eatable = manager.Map.GetEatable().ToList();
         return(new ArtificialIntelligenceResult(eatable[new Random().Next(eatable.Count)].Position));
     }
     return(this.InvokeNext(manager, pac));
 }