/// <summary>
        /// エージェントを動かしたときに、状態がどう変化するか計算します。
        /// </summary>
        /// <param name="team">どのチームが動くか指定します。</param>
        /// <param name="agentNumber">どのエージェントが動くか指定します。</param>
        /// <param name="action">どうエージェントが動くか指定します。</param>
        /// <returns>エージェントを動かしたときの計算データが返ってきます。</returns>
        public Calc Simulate(Team team, AgentNumber agentNumber, AgentActivityData action)
        {
            var c = new Calc(this);

            c.MoveAgent(team, agentNumber, new AgentActivityData(action));
            return(c);
        }
        /// <summary>
        /// 指定したところにエージェントが移動します。
        /// </summary>
        /// <param name="team">移動させるチーム</param>
        /// <param name="agent">移動させるエージェント</param>
        /// <param name="agentActivityData"></param>
        public void MoveAgent(Team team, AgentNumber agent, AgentActivityData agentActivityData)
        {
            var agentActivityDatas = new AgentsActivityData(AgentStatusCode.RequestNotToDoAnything);

            agentActivityDatas[team, agent] = agentActivityData;
            MoveAgent(agentActivityDatas);
        }
Пример #3
0
        /// <summary>
        /// Procon29_Showの初期化を行います。
        /// </summary>
        /// <param name="procon29_Calc">表示する計算機</param>
        /// <param name="pictureBox">表示するピクチャボックス</param>
        public Show(Calc procon29_Calc, PictureBox pictureBox)
        {
            Calc       = procon29_Calc;
            PictureBox = pictureBox;

            // ResourceManagerを取得する
            System.Resources.ResourceManager resource = Properties.Resources.ResourceManager;

            //画像ファイルを読み込んで、Imageオブジェクトとして取得する
            AgentBitmap    = new Bitmap[2];
            AgentBitmap[0] = (Bitmap)resource.GetObject("Orange");
            AgentBitmap[1] = (Bitmap)resource.GetObject("Lime");
            FairyBitmap    = new Bitmap[4];
            FairyBitmap[0] = (Bitmap)resource.GetObject("Strawberry");
            FairyBitmap[1] = (Bitmap)resource.GetObject("Apple");
            FairyBitmap[2] = (Bitmap)resource.GetObject("Kiwi");
            FairyBitmap[3] = (Bitmap)resource.GetObject("Muscat");

            foreach (Team team in Enum.GetValues(typeof(Team)))
            {
                foreach (AgentNumber agent in Enum.GetValues(typeof(AgentNumber)))
                {
                    AgentsActivityData[team, agent] = new AgentActivityData(AgentStatusCode.RequestMovement, Calc.Agents[team, agent].Position);
                }
            }

            ClickField = new ClickField(Calc, PictureBox);
            DrawField  = new DrawField(Calc, new Bitmap(pictureBox.Width, pictureBox.Height));
        }
Пример #4
0
 /// <summary>
 /// リクエストが成功したとして処理します
 /// </summary>
 /// <param name="agentActivityData">対象となるエージェントの行動データ</param>
 public static void ToSuccess(this AgentActivityData agentActivityData)
 {
     if (agentActivityData.AgentStatusData != AgentStatusCode.NotDoneAnything &&
         agentActivityData.AgentStatusData.ToAttribute() == AgentStatusCodeAttribute.Request)
     {
         agentActivityData.AgentStatusData = agentActivityData.AgentStatusData.ToSucceeded();
     }
 }
Пример #5
0
        public static void ToFailByCollisionWithTheLazyOpponent(this AgentActivityData agentActivityData)
        {
            switch (agentActivityData.AgentStatusData)
            {
            case AgentStatusCode.RequestMovement:
                agentActivityData.AgentStatusData = AgentStatusCode.FailedInMovingByCollisionWithTheLazyOpponent;
                return;

            case AgentStatusCode.RequestRemovementOpponentTile:
                agentActivityData.AgentStatusData = AgentStatusCode.FailedInRemovingOpponentTileWithTheLazyOpponent;
                return;

            default:
                return;
            }
        }
 /// <summary>
 /// 初期化を行います
 /// </summary>
 public AgentActivityData(AgentActivityData agentActivityData)
 {
     AgentStatusData = agentActivityData.AgentStatusData;
     Destination     = new Coordinate(agentActivityData.Destination);
 }