我正在添加一个新的代理和代理群体(商店商店)到AnyLogic模型,并复制现有的代码,以实现 工作室. 一切都很正常,除了 铺子 小写)。搜索了整个软件,找到了 工作 (小写)的定义是(为了给 铺子),但无济于事;找不到任何东西可以解释为什么 工作 是解释而不是 铺子. (对不起,我知道这个问题的框架不是一个最好的方式 - 总的初学者在这里)。这也许是AnyLogic的具体问题?
这里是问题线(铺子 就在p.后面)
p.shop = shops.get( uniform_discr( 0, shops.size()-1 ) );
而这里是完整的代码。
//setup work locations
for( int i=0; i<works.size(); i++ ) {
Work w = works.get(i);
w.X = 540 + 65 * ( i % 3 );
w.Y = 30 + 50* ( i / 3);
}
for( int i=0; i<shops.size(); i++ ) {
Shop s = shops.get(i);
s.X = 750 + 65 * ( i % 3 );
s.Y = 30 + 50* ( i / 3);
}
//setup families
for( int i=0; i<TotalFamilies; i++ ) {
//create a Family object
Family f = add_families();
//set home location
f.X = 50 * ( i % 10 );
f.Y = 40 * ( i / 10 );
//add family members
int size = uniform_discr( 2, 5 );
for( int j=0; j<size; j++ ) {
//create a person
Person p = add_people();
//add to the family
f.members.add( p );
p.family = f;
if (p.old == true)
{f.elderHome = true;
nOld++;};
//set its home location (in family house)
p.XHome = f.X + 5 + 5 * ( j % 3 );
p.YHome = f.Y + 6 - 5 * ( j / 3 ) ;
p.jumpTo( p.XHome, p.YHome );
//assign work and shops
p.shop = shops.get( uniform_discr( 0, shops.size()-1 ) );
p.work = works.get( uniform_discr( 0, works.size()-1 ) );
}
}
//infect three random people at the beginning of the simulation
for( int i=0; i<3; i++ )
people.get( uniform_discr( people.size()-1 )).
illness.receiveMessage( "Infection" );
work
是定义在代理类型 Person
作为一个参数或变量。
如果你的错误是标记为 shop
这意味着你的代理类型 Person
不变 shop
属于 Shop
). 添加后,错误就会消失。
PS:多做一些教程,多读一些面向对象的编程知识,更好的理解基本原理:)