为每只海龟查询/创建海龟子集
Query / create subset of turtles for each turtle
我有一个 agentset
,其中所有海龟的 age/experience 值都不同。我想做的是为每只海龟找到更有经验的海龟,然后跟随这些海龟。不幸的是,ifelse [ age-experience > my-own-age-experience ]
行出现以下错误:
Expected a TRUE/FALSE here, rather than a list or block.
这是我的代码:
turtles-own [
age-experience
more-dominant
dominant-flockmates
]
to setup
clear-all
create-turtles 10 [ set age-experience random-float 1 ]
reset-ticks
end
to go
ask turtles [
find-dominant-flockmates
ifelse any? dominant-flockmates
[ show "follow the more dominant flockmates" ]
[ show "take the lead" ]
]
tick
end
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles [
ifelse [ age-experience > my-own-age-experience ]
[ set more-dominant true ]
[ set more-dominant false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
好的,这里有多种选择。您可以通过删除 []
来消除错误
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles [
ifelse age-experience > my-own-age-experience
[ set more-dominant true ]
[ set more-dominant false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
但是还有更有效的编码方法。如果你打算将变量 more-dominant
用于其他目的(所以你需要它),你可以像这样使用 ifelse-value
(因为它是 true/false,你实际上不需要 ifelse -value 但了解它是一件好事):
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles
[ set more-dominant ifelse-value (age-experience > my-own-age-experience)
[ true ]
[ false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
但是如果拥有变量的唯一原因是创建代理集,您可以直接完成整个操作:
to find-dominant-flockmates
let my-own-age-experience age-experience
set dominant-flockmates other turtles with [ age-experience > my-own-age-experience ]
end
我有一个 agentset
,其中所有海龟的 age/experience 值都不同。我想做的是为每只海龟找到更有经验的海龟,然后跟随这些海龟。不幸的是,ifelse [ age-experience > my-own-age-experience ]
行出现以下错误:
Expected a TRUE/FALSE here, rather than a list or block.
这是我的代码:
turtles-own [
age-experience
more-dominant
dominant-flockmates
]
to setup
clear-all
create-turtles 10 [ set age-experience random-float 1 ]
reset-ticks
end
to go
ask turtles [
find-dominant-flockmates
ifelse any? dominant-flockmates
[ show "follow the more dominant flockmates" ]
[ show "take the lead" ]
]
tick
end
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles [
ifelse [ age-experience > my-own-age-experience ]
[ set more-dominant true ]
[ set more-dominant false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
好的,这里有多种选择。您可以通过删除 []
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles [
ifelse age-experience > my-own-age-experience
[ set more-dominant true ]
[ set more-dominant false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
但是还有更有效的编码方法。如果你打算将变量 more-dominant
用于其他目的(所以你需要它),你可以像这样使用 ifelse-value
(因为它是 true/false,你实际上不需要 ifelse -value 但了解它是一件好事):
to find-dominant-flockmates
let my-own-age-experience age-experience
ask other turtles
[ set more-dominant ifelse-value (age-experience > my-own-age-experience)
[ true ]
[ false ]
]
set dominant-flockmates other turtles with [ more-dominant ]
end
但是如果拥有变量的唯一原因是创建代理集,您可以直接完成整个操作:
to find-dominant-flockmates
let my-own-age-experience age-experience
set dominant-flockmates other turtles with [ age-experience > my-own-age-experience ]
end