一般来说,你可以使用 min 和 max 这种限制的功能。缺乏参考 myself 是一个单独的问题。
min
max
myself
在限制上,最明确的方法是构造一个临时变量(下面称为“食物”),该变量是要调整的量。
该 myself 问题似乎是(尚未测试),因为细菌是实际运行代码的代理。也就是说,没有“外部”背景。你正在经营 set 直接命令细菌剂的变量。如果细菌要求猎物做某事,然后猎物需要获得细菌拥有的一些变量,那么只有外在的背景。
set
如果我的解释是正确的,那么你只需参考 bacteria_mass 而不是 [bacteria_mass] of myself
bacteria_mass
[bacteria_mass] of myself
to Bacteria_eat_glucose let prey one-of glucose-here if prey != nobody [ ifelse [glucose_mass] of prey > uptake [ let food min (list uptake [glucose_mass] of prey) set bacteria_mass bacteria_mass + food * 0.3 ask prey [set glucose_mass glucose_mass �C 0.3] ] [ set bacteria_mass bacteria_mass + [glucose_mass * 0.3] of prey ask prey [die] ] ] end