在netlogo中配对海龟的最佳方式

问题描述 投票:0回答:1

如果可能的话,我需要将每只乌龟精确地链接到 1(实际上让每只乌龟都玩 2 人游戏回合,因此每个链接都是 2 名玩家的游戏 - 但玩家每个刻度线或每轮只能玩 1 场游戏)。

我想出的是

ask turtles [
    ;; If I haven't gotten a link yet
    ifelse not any? link-neighbors [ 
      ;; setup a link with a different turtle that also doesn't have a link
      ;; roll a die to set up who wins or loses
      create-link-with one-of other turtles with [not any? link-neighbors] [set game-roll random-float 1.0]
    ]
  ]

有更优雅的方法吗?我认为代理集不会动态更新,所以一旦询问开始,它的设置就完成了,这就是为什么这有点奇怪

graph-theory netlogo
1个回答
0
投票

我不能100%确定我是否正确回答了你的问题。为什么你希望你的代理集动态更新?我假设您不想不必要地循环所有已经在上一个循环中创建链接的海龟?一种方法可能是,首先计算对的数量并使用

repeat
来建立它们。

let n_pairs floor (count turtles / 2)

repeat n_pairs [
  ask one-of turtles with [not any? link-neighbors] [
    create-link-with one-of other turtles with [not any? link-neighbors][
      set game-roll random-float 1.0
    ]
  ]
]

希望有帮助。否则你可能需要澄清你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.