Example #1
0
        //最後の推定時
        public override void EstimateAwarenessRate()
        {
            //Don'tReplyなので、もらえない可能性がある。もらえなかったところを補完するために、もらえなかった奴は、自分と同じだと思ってしまう。

            //まず、送信者のリストをエージェントのリストに変換
            List <Agent> senderAgents = new List <Agent>();

            foreach (Agent senderAgent in messageBox.Senders)
            {
                senderAgents.Add(senderAgent);
            }

            //意見をくれてない近隣は、DontReplyしてるだけだと思い込む。

            var notSender = Neighbours.Except(senderAgents);

            int countNotSender = notSender.Count();

            if (this.Opinion == BlackWhiteSubject.White)
            {
                updatedNum += countNotSender;
            }
            else if (this.Opinion == BlackWhiteSubject.Black)
            {
                updatedNum -= countNotSender;
            }


            base.EstimateAwarenessRate();
        }