试图让 10 只海龟中的 n 只从三只海龟中随机执行一个程序
Trying to ask n-of 10 turtles to do a random procedure out of a list of three
这就是我目前正在努力解决的问题。我是 netlogo 的新手,所以任何帮助都很好。这是对 'virus' 教程的修改。
ifelse-value
choice = 0 [ go-quarantine ]
choice = 1 [ wear-mask ]
[ get-sick ] ) ]
布兰登,欢迎您!是的,文档对此有点模糊。
我认为您只需要“ifelse”来分支到某个操作,而不是 returns 一个值的“ifelse-value”。
你需要在“ifelse”之前加一个“(”,否则它不会起作用。你有结尾的“)”。
您不需要结束符“]”
“选择”不是必要的魔法词。您可以使用任何逻辑测试。
所以您正在寻找的命令将是这种模式,其中白色 space 在 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 等值并按顺序排列它们。
这就是我目前正在努力解决的问题。我是 netlogo 的新手,所以任何帮助都很好。这是对 'virus' 教程的修改。
ifelse-value
choice = 0 [ go-quarantine ]
choice = 1 [ wear-mask ]
[ get-sick ] ) ]
布兰登,欢迎您!是的,文档对此有点模糊。
我认为您只需要“ifelse”来分支到某个操作,而不是 returns 一个值的“ifelse-value”。
你需要在“ifelse”之前加一个“(”,否则它不会起作用。你有结尾的“)”。
您不需要结束符“]”
“选择”不是必要的魔法词。您可以使用任何逻辑测试。
所以您正在寻找的命令将是这种模式,其中白色 space 在 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 等值并按顺序排列它们。