AnyLogic - 无法解决或不是现场问题

AnyLogic - cannot resolve or is not a field issue

我正在向 AnyLogic 模型添加新的代理和代理群体 (Shop/shops) 并复制现有代码 Work/works。除 shop(小写)外,一切正常。搜索整个软件以找到定义 work(小写)的位置(以便对 shop 执行相同的操作)无济于事;找不到任何可以解释为什么 work 而不是 shop 的解释。 (对不起,我知道这个问题不是以最好的方式提出的 - 这里是初学者)。这可能是 AnyLogic 特定的问题?

这是问题行(shop 就在 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:多做一些教程并阅读面向对象编程以更好地理解基本原理:)