【问题标题】:Netlogo : spawning a turtle on a certain patch with a certain pcolorNetlogo : 在特定的补丁上用特定的 pcolor 生成海龟
【发布时间】:2014-11-08 19:56:45
【问题描述】:

我正在制作体育场的模拟。我用pcolor = 35 创建了几行。 现在我需要我的海龟数量在带有pcolor = 35 的补丁上产卵,但别无他处。它们还需要在这些补丁上随机生成。 我的这个问题的代码如下所示:

to seat-people

set color green

setxy int random-xcor int random-ycor

if (pcolor = 35) [seat-people]

if any? other turtles-here [seat-people]

end

海龟是绿色的,随机生成,每个补丁只有一只海龟; 但它们不会在带有pcolor = 35 的补丁上生成,而是无处不在!我该怎么做?

我看到了if (pcolor > 35) [seat-people] 的代码, 但我已经有许多其他 pcolors 超过 35。

【问题讨论】:

    标签: patch netlogo


    【解决方案1】:

    试试这个。其中N 是您要发芽的海龟数量,sprout 1 是发芽 1 只海龟的过程,您可以根据需要进行修改。

    ask n-of N patches with [pcolor = 35 and not any? other turtles-here][sprout 1]
    

    【讨论】:

    • 如果我将 N 替换为海龟数量的滑块,那么新芽 1 是做什么用的?我用了你的代码,没有一只乌龟出现。
    • 我测试了我的代码并且它正在工作。如果您将 N 替换为一个数字(假设为 20),那么您正在做的是:要求 20 个补丁(根据特定条件选择)在其上发芽 1 只乌龟。所以总共有20只海龟。现在再次阅读您的问题,如果您希望海龟以绿色或其他颜色生成,我不明白。我的代码是绿色的,如果我理解错了,你只需要把 '= 35' 替换为 '!= 35'
    • 它现在可以工作了,我必须更改我自己的代码的某些部分才能使其工作,但它可以工作!谢谢你。 :-)
    【解决方案2】:

    我认为您正在寻找“不等于”运算符!=

     Ask n-of 20 patches with [pcolor != 35][sprout 1]
    

    【讨论】:

    • 我不知道我是否可以使用 n-of 20 个补丁,因为补丁的数量不​​应该影响模拟,但我尝试了你的代码以及你和我的组合,但它没有不行。当我将 = 35 替换为 != 35 时,屏幕变黑,乌龟似乎随机跑来跑去,好像无法放置一样。
    • 另外,如果我说“用 [pcolor = 35] [sprout 1] 询问补丁,那么每个带有 pcolor 35 的补丁都会发芽一只海龟,导致大约 600 只海龟产卵。如果我使用 ! =35,然后每个补丁都会产生一只乌龟,屏幕上全是乌龟。:-D
    • 好像有语言障碍。
    猜你喜欢
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多