Exemple #1
0
        private void Calc()
        {
            // 初期化
            foreach (Agent agent in VoteMap.Keys)
            {
                ReceiveVoteCount.Add(agent, 0);
            }

            // 被投票数のカウント
            foreach (Agent agent in VoteMap.Values)
            {
                // 存在しないエージェントに投票宣言することもあるので存在チェックする
                if (agent != null && VoteMap.ContainsKey(agent))
                {
                    ReceiveVoteCount[agent]++;
                    // 被投票数の最大を記憶
                    MaxVoteReceiveCount = Math.Max(MaxVoteReceiveCount, ReceiveVoteCount[agent]);
                }
            }

            // 被投票率のカウント
            foreach (KeyValuePair <Agent, int> keyValue in ReceiveVoteCount)
            {
                ReceiveVoteRate.Add(keyValue.Key, keyValue.Value / (double)VoteMap.Count);
            }

            // 最大得票者の取得
            foreach (KeyValuePair <Agent, int> keyValue in ReceiveVoteCount)
            {
                if (keyValue.Value == MaxVoteReceiveCount)
                {
                    MaxVoteReceivedAgent.Add(keyValue.Key);
                }
            }
        }