在Netlogo中为海龟分配不同的随机名称

时间:2016-09-04 05:58:52

标签: random netlogo

我使用

在netlogo中创建了10只乌龟
 create-ordered-turtles 10  
    [ 
      let b median (list -17 (random-normal 0 5) 16)
      setxy b -12 
      set size 3  ; 
      set color black
    ]

现在我想使用像这样的随机函数为每只乌龟分配一个随机和不同的名称

one-of [ "Name1" "Name2" "Name3" "Name4" "Name5" "Name6" "Name7" "Name8" "Name9" "Name10"]

这意味着所有10只海龟的名称都从 Name1 Name10 。但是没有两只海龟会有相同的名字。

另外,我想为每只乌龟分配不同的整数。

任何人都可以指导我如何做到这一点。我会非常感激的。感谢

1 个答案:

答案 0 :(得分:1)

如果我们坚持您的问题描述,最简单的答案是以下

turtles-own [name]
to setup
  ca
  let names  [ "Name1" "Name2" "Name3" "Name4" "Name5" 
               "Name6" "Name7" "Name8" "Name9" "Name10"]
  create-ordered-turtles 10  
    [ 
      let b median (list -17 (random-normal 0 5) 16)
      setxy b -12 
      set size 3  ; 
      set color black
      set name item who names
    ]
end

您可以指定"整数金额"以同样的方式。如果您想要一种对问题描述不那么专业的方法,您可以创建一个name-random-turtles程序,并使用您setup末尾的名称列表来调用它。例如,

to name-random-turtles [#names]
  let _n length #names
  let _turtles [self] of (n-of _n turtles)  ;list of turtles, in random order
  foreach n-values _n [?] [
    let _turtle item ? _turtles
    let _name item ? #names
    ask _turtle [set name _name]
  ]
end