【发布时间】:2016-05-06 04:58:33
【问题描述】:
我有 3 种颜色(黄色、绿色和红色)的补丁。绿色的有一个“等级”值。我想询问给定数量('n-cells')的黄色或绿色补丁('candidate-cells')变成红色。我知道我可以使用原始的“n-of”随机执行此操作,如下所示:
let candidate-cells ( patches with [ pcolor = yellow or pcolor = green ] )
ask n-of n-cells candidate-cells [ set pcolor red ]
但我想为将变红的补丁添加优先级。首先,我希望黄色补丁(随机)变成红色,但是如果在所有黄色补丁之后仍有补丁变成红色,我希望具有最高“等级”值的绿色补丁变成红色,直到变成补丁的数量达到'n 细胞' 的数量。我认为这段代码应该可以工作到最后一行:
let candidate-yellow-cells ( pcolor = yellow )
let candidate-green-cells ( pcolor = green )
ask n-of n-cells candidate-yellow-cells [ set pcolor red ]
if n-cells > candidate-yellow-cells [
let left-cells ( n-cells - candidate-yellow-cells )
ask n-of left-cells candidate-green-cells [ set pcolor red ]
但是,我仍然对绿色单元格使用“n-of”,我想知道如何将其替换为将“左单元格”选为具有最高“等级”值的绿色补丁的东西。提前谢谢你。
【问题讨论】: