首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Netlogo网络中,海龟如何“看到”其他海龟的属性?

在Netlogo网络中,海龟如何“看到”其他海龟的属性?
EN

Stack Overflow用户
提问于 2017-07-25 20:55:41
回答 1查看 952关注 0票数 1

我正在尝试建立一个模型,在这个模型中,海龟决定根据它们在网络中的环境来改变颜色。

方法是“检查”周围海龟的颜色,然后为有问题的海龟设置一个if语句来切换颜色(只有两种颜色)。

具体地说,我想知道一只海龟如何“看到”或检查其他海龟的颜色(或其他属性)。

如果可能的话,我还想创建一个滑块“有多少链接”可以看到乌龟的邻居乌龟(或邻居的邻居等)的颜色。

我是Netlogo和Stackoverflow的新手,所以如果我应该对我的模型和/或问题进行任何修改,请让我知道。

谢谢!

卡洛斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 22:12:07

欢迎来到Stack Overflow!通常,你会希望每个帖子都只有一个问题,这既是为了简单起见,也是为了将来有类似问题的用户的利益。此外,在适用的情况下,您应该尝试包含一些代码,以显示到目前为止您已经尝试过的内容,以及任何必要的设置-您希望创建一个minimal, complete, and verifiable example。在这种情况下,我认为你没有问题,因为你的问题很清楚,解释得很好,但如果你将来有更复杂的问题,你将更有可能通过遵循这些指导方针获得有用的答案。

对于您的第一个问题,看起来您需要of原语-请查看dictionary entry以了解详细信息。of可以通过几种方式使用,包括允许代理检查另一个代理的变量(如颜色)的值。查看以下示例代码:

代码语言:javascript
复制
to setup
  ca
  reset-ticks
  crt 10 [
    setxy random 30 - 15 random 30 - 15
    create-link-with one-of other turtles
  ]
end

to go
  ask turtles [
    set color [color] of one-of link-neighbors
  ]
end

每次调用go过程时,一个海龟都会将它的颜色更改为它的一个link-neighbors的颜色。如果运行时间足够长,所有连接的乌龟都应该以相同的颜色结束。

关于你的第二个问题,我建议你看看Nw extension,这是一个更容易处理Netlogo网络的扩展。具体地说,看看nw:turtles-in-radius,它应该与您的滑块方法一起工作。要使其正常工作,请使用

extensions [ nw ]

在代码的开头。然后,假设与上面的设置相同,您可以尝试如下内容

代码语言:javascript
复制
to network-radius
  ask one-of turtles [
    set color red
    ask other nw:turtles-in-radius 2 [
      set color white
    ]
  ]
end

当您调用上面的network-radius过程时,您应该看到一个海龟变红了,而该海龟2个链接内的所有海龟都变成了白色。要切换到滑块,只需将"2“替换为您的滑块变量。希望这能有所帮助!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45304031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档