protected List <Point> CalculateProhibitedPoints(Agent agent) { List <Point> prohibited = new List <Point>(); //エージェントの周りのセルにいるエージェントの情報を取得 Agent anoAgent = Game.GetTeam(agent).GetAnotherAgent(agent); Team anoTeam = Game.GetTeam(Game.GetTeamFlag(agent).GetEnemyTeam()); Point p = agent.Position - anoAgent.Position; if (Math.Abs(p.X) <= 1 && Math.Abs(p.Y) <= 1) { prohibited.Add(anoAgent.Position); } p = agent.Position - anoTeam.Agent1.Position; if (Math.Abs(p.X) <= 1 && Math.Abs(p.Y) <= 1) { prohibited.Add(anoTeam.Agent1.Position); } p = agent.Position - anoTeam.Agent2.Position; if (Math.Abs(p.X) <= 1 && Math.Abs(p.Y) <= 1) { prohibited.Add(anoTeam.Agent2.Position); } return(prohibited); }
public AgentAlgorithmBase(Game game, Agent agent) { Game = game; TeamEnum = game.GetTeamFlag(agent); EnemyEnum = TeamEnum.GetEnemyTeam(); Team = game.GetTeam(TeamEnum); Enemy = game.GetTeam(EnemyEnum); Agent = agent; }