悬赏 5 个论坛币 未解决
是这样的。本人编程菜鸟,故问题多多!
AgentList1中的Agent有生有死,我想输出的是AgentList1中智能体数量随时间变化的曲线。
当采取下面策略的时候,输出的是一条不变的曲线,也就是列表中智能体的初始值。
NUMGraph = [EZGraph createBegin: [self getZone]];
SET_WINDOW_GEOMETRY_RECORD_NAME (NUMGraph);
[NUMGraph setTitle: "NUMGraph"];
[NUMGraph setAxisLabelsX: "Time" Y: "NUM"];
NUMGraph = [NUMGraph createEnd];
[NUMGraph createSequence: "NUM"
withFeedFrom: [modelSwarm getAgentList1]
andSelector: M(getCount)];
这是不是说明列表中的死去的智能体没有清除呢?下面的程序起作用吗?如何清除死亡的智能体呢?
#ifdef BCDE
- agentDeath: (SugarAgent *)agent
{
[reaperQueue addLast: agent];
if (replacement)
[self addNewRandomAgent];
return self;
}
- reapAgents
{
id index, agent;
index = [reaperQueue begin: [self getZone]];
while ((agent = [index next]))
{
[agentList remove: agent];
[agent drop];
}
[reaperQueue removeAll];
return self;
}
还望高手教我呀!