예제 #1
0
        public ActionResult Process(Message <ExchangeInformationResponseForward> message)
        {
            logger.Debug("[Agent {id}] Received information exchange response", agent.Id);

            agent.AgentInformationsComponent.IsWaiting = false;

            //agent.BoardLogicComponent.UpdateDistances(message.Payload.Distances);
            agent.BoardLogicComponent.UpdateBlueTeamGoalAreaInformation(message.Payload.BlueTeamGoalAreaInformation.ToTwoDimensionalArray(agent.BoardLogicComponent.GoalAreaSize, agent.BoardLogicComponent.BoardSize.X));
            agent.BoardLogicComponent.UpdateRedTeamGoalAreaInformation(message.Payload.RedTeamGoalAreaInformation.ToTwoDimensionalArray(agent.BoardLogicComponent.GoalAreaSize, agent.BoardLogicComponent.BoardSize.X));

            agent.AgentInformationsComponent.UpdateAssignment();

            var newMessage = agent.GetMessage();

            return(newMessage == null?agent.MakeDecisionFromStrategy() : agent.AcceptMessage(newMessage));
        }
예제 #2
0
        public void AcceptMessage_ShouldNotJoinWnehRejected()
        {
            var config = AgentConfiguration.GetDefault();

            agent            = new Agent.Agent(config);
            agent.AgentState = AgentState.WaitingForJoin;
            agent.AcceptMessage(GetBaseMessage(new JoinResponse(false, 1), 1));
            Assert.AreEqual(agent.AgentState, AgentState.WaitingForJoin);
        }
예제 #3
0
        public void AcceptMessage_ShouldJoinWhenAccepted()
        {
            var config = AgentConfiguration.GetDefault();

            agent            = new Agent.Agent(config);
            agent.AgentState = AgentState.WaitingForJoin;
            agent.AcceptMessage(GetBaseMessage(new JoinResponse(true, 1), 1));
            Assert.AreEqual(agent.AgentState, AgentState.WaitingForStart);
        }
예제 #4
0
 public void ProcessMessage_JoinRequestWhenAcceptedShouldSetAgentId()
 {
     Assert.AreEqual(agent.Id, 0);
     agent.AcceptMessage(GetBaseMessage(new JoinResponse(true, 1), 1));
     Assert.AreEqual(agent.Id, 1);
 }