根据代理变量指定占用块中的资源集

Specifying resource sets in seize block based on agent variable

通过模型推送的代理有一个变量 isMorning,该变量设置为 false,但如果它们在特定时间之前注入,则设置为 true。当代理进入占用块时,我想添加一个条件,该条件依赖于 isMorning 是否为 true 以选择资源集。我想知道在资源集参数中使用条件来在不同资源集之间进行选择的正确语法,或者这是否必须在另一个参数中完成。

最好的选择是创建一个新函数,例如 getResoruceSet(boolean isMorning 然后 return ResourcePool[][]

然后您可以使用此函数替换占用块中的资源集参数

函数内的代码需要为 ResorucePool 创建新数组,其中第一个维度是需要占用的资源数量,第二个维度是不同的集合。

例如:

if (isMorning) {
    return new ResourcePool[][] { 
        { resourcePool, resourcePool }
        };
} else {
    return new ResourcePool[][] { 
{ resourcePool1},       
{ resourcePool, resourcePool2, resourcePool2}
        };

}

如果是早上,你需要抓住 2 个单位 resourcePool。如果不是早上,您要么需要从 resorucePool1 中获取 1 个单位,要么从 resourcePool 中获取 2 个单位,从 resorucePool2

中获取 2 个