这是我目前正在努力解决的问题。我是 netlogo 的新手,所以任何帮助都很好。这是对“病毒”教程的修改。
ifelse-value
choice = 0 [ go-quarantine ]
choice = 1 [ wear-mask ]
[ get-sick ] ) ]
答案 0 :(得分:1)
布兰登,欢迎!是的,文档对此有点模糊。
我认为您只需要“ifelse”分支到某个操作,而不是返回值的“ifelse-value”。
在“ifelse”之前需要一个“(”,否则它不起作用。你有结束的“)”。
你不需要结束“]”
“选择”不是一个必要的魔法词。您可以使用任何逻辑测试。
因此,您要查找的命令将是这种模式,其中 NetLogo 中的空白是灵活的,“...”意味着零个或多个内容可能会出现在那里。我是老派,更喜欢在条件测试周围加上括号,但您不需要这样做。
(ifelse
( test-1 ) [ actions 1 ...]
( test-2 ) [ actions 2 ...]
...
( test-n ) [ actions n ...]
;; else
[ default actions ]
)
所以说这个人有 33.3% 的机会去每一种方式。 您可以按如下方式编写此模式的实例:
let mood random 3 ;; returns integer values of 0, 1, or 2
( ifelse
( mood = 0 ) [ go-quarantine]
( mood = 1 ) [ wear-mask ]
[ get-sick ]
)
该代码隐含地期望稍后定义这些操作:
to go-quarantine [ do this ] end
to wear-mask [ do that] end
to get-sick [ do other stuff ] end
并且不需要选择 0、1、2 等值并将它们按该顺序排列。