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:多做一些教程并阅读面向对象编程以更好地理解基本原理:)
我正在向 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:多做一些教程并阅读面向对象编程以更好地理解基本原理:)