//最後の推定時 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(); }