获取补丁自己的值
Get patches-own values
如何获得给定 netlogo 补丁的价值。我只能获取补丁自己的名称(使用 .word.program.patchesOwn()),但我不知道如何获取它们的值。
谢谢
您想要所有补丁的值,或特定补丁的值,还是什么?
我假设您想要来自特定补丁的值。
假设,首先:
import org.nlogo.headless.HeadlessWorkspace;
HeadlessWorkspace workspace = HeadlessWorkspace.newInstance();
workspace.open("models/Sample Models/Biology/Ants.nlogo");
workspace.command("setup");
那么除了 HeadlessWorkspace.report
之外,您不需要任何其他东西来从补丁中检索值,例如:
double food = ((Double) workspace.report("[food] of patch -17 -19")).doubleValue();
另一个更麻烦的解决方案涉及直接访问引擎数据结构:
Patch p = workspace.world().getPatchAt(-17, -19);
int foodIndex = workspace.world().program().patchesOwn().indexOf("FOOD");
double food = ((Double) p.getPatchVariable(foodIndex)).doubleValue();
如何获得给定 netlogo 补丁的价值。我只能获取补丁自己的名称(使用 .word.program.patchesOwn()),但我不知道如何获取它们的值。
谢谢
您想要所有补丁的值,或特定补丁的值,还是什么?
我假设您想要来自特定补丁的值。
假设,首先:
import org.nlogo.headless.HeadlessWorkspace;
HeadlessWorkspace workspace = HeadlessWorkspace.newInstance();
workspace.open("models/Sample Models/Biology/Ants.nlogo");
workspace.command("setup");
那么除了 HeadlessWorkspace.report
之外,您不需要任何其他东西来从补丁中检索值,例如:
double food = ((Double) workspace.report("[food] of patch -17 -19")).doubleValue();
另一个更麻烦的解决方案涉及直接访问引擎数据结构:
Patch p = workspace.world().getPatchAt(-17, -19);
int foodIndex = workspace.world().program().patchesOwn().indexOf("FOOD");
double food = ((Double) p.getPatchVariable(foodIndex)).doubleValue();