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)); }
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)); }