- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 1017 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 2 点
- 信用等级
- 0 点
- 经验
- 65 点
- 帖子
- 9
- 精华
- 0
- 在线时间
- 18 小时
- 注册时间
- 2010-1-11
- 最后登录
- 2010-7-8
初中生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 1017 个
- 通用积分
- 0
- 学术水平
- 0 点
- 热心指数
- 2 点
- 信用等级
- 0 点
- 经验
- 65 点
- 帖子
- 9
- 精华
- 0
- 在线时间
- 18 小时
- 注册时间
- 2010-1-11
- 最后登录
- 2010-7-8
|
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;
}
还望高手教我呀! |
|