【问题标题】:how to get the number of ticks for a turtle takes to go to a green patch?如何获得乌龟去绿地所需的蜱数?
【发布时间】:2019-06-20 07:28:21
【问题描述】:

有一个红色的补丁和10海龟随机移动。

当乌龟来到red 补丁时,它变成green

我想将模型运行 100 次,并将所有 100 次运行的刻度数(第一个补丁颜色变化所需的)输入到 Excel 表中。

to setup
  clear-all      ; clear everything when we click setup
  setup-patches
  setup-turtles
  reset-ticks
end

to setup-patches
  ask n-of humans patches [set pcolor green]
end

to setup-turtles
  create-turtles Mosquitos
  ask turtles [
    set size 1
    set shape "bug"
    set color yellow
    setxy random-xcor random-ycor
     ]
    ask turtles
     [
      ifelse coin-flip?
          [ifelse coin-flip? [set heading 0][set heading 90]]
          [ifelse coin-flip? [set heading 180][set heading 270]]
    ]

end

to go
  ask turtles
    [
       ifelse coin-flip?
          [ifelse coin-flip? [set heading 0][set heading 90]]
          [ifelse coin-flip? [set heading 180][set heading 270]]
       forward 1
        if pcolor = green
          [
            set pcolor red
          show ticks
          ]
    ]
        tick
end

to-report coin-flip?
  report random 2 = 0
end

【问题讨论】:

  • 由于它只变绿一次,所以这个问题有点混乱。您希望它输出一次ticks 而不是show,还是打算多次运行模拟并希望所有运行都输出到同一个文件?
  • 与您的问题无关:您的硬币翻转?程序可以简化。您可以简单地说 report one-of [true false],而不是报告随机 0 或 1 是否为 0,因为 one-of 在选项之间随机选择统一。
  • coinflip 使海龟在每个刻度上随机向上、向下、向左、向右移动。当按下设置时,海龟被随机放置。按下 go &海龟开始永远随机移动。当一只乌龟来到绿色补丁时,它会变成红色,并且它变成红色的滴答时间会显示在命令中心。(例如 45)。补丁变成红色后,乌龟正在移动,但如果它们到达已经红色的补丁,则会显示一个滴答时间不会显示(即海龟第一次到达补丁滴答时间显示在命令中心)。我想运行程序 100 次并获得这 100 个滴答时间并将它们变成 excel。

标签: netlogo


【解决方案1】:

BehaviorSpace 会自动跟踪这些步骤。您需要做的就是设置一个 BehaviorSpace 实验,当补丁变为绿色时停止模拟。

当补丁变为绿色时,您需要告诉 BehaviorSpace 停止。所以any? patches with [pcolor = green]作为实验中的停止条件。当步骤被发送到文件时,您不需要“使用这些报告器进行测量”框中的任何内容,因此只需将其保留为 count turtles。同时取消选中该框,使其仅在运行结束时报告。使用 BehaviorSpace 输出的表格形式。

【讨论】:

  • 先生。非常感谢你帮助我。顺便说一句,我希望乌龟首先遇到彩色补丁的滴答时间,比如 123。按设置并开始。然后 345。按设置并开始。然后 23。同样它可以是任何滴答时间。没有限制。我想做 100 次并获得 100 个对应的 excel 滴答时间。滴答时间可以大于 100。你能在我制作的代码中进行更正并发送给我吗? (我想编写一个代码,这样只需按一个按钮,我就可以在 excel 中获得 100 个不同的刻度值。我认为需要行为空间)谢谢
  • 如果您只想让它在第一次遇到绿色补丁时停止,那么是的,您需要 BehaviorSpace。 BehaviorSpace 会自动创建一个 Excel 文件,因此不清楚您需要什么帮助。
  • 先生。当乌龟第一次碰到绿色补丁时,比如说第 45 个刻度。我想这样做 100 次,并获得击中补丁所需的平均时间。我应该在“使用这些报告器测量运行”框中写什么?我不能写计数滴答声。顺便说一句,我可以在重复框中写“100”。 “BehaviorSpace 自动创建 Excel 文件”??这对我不起作用。我想我的问题现在很清楚了。谢谢。
  • 谢谢。但它仍然无法正常工作。先生。你能在我的代码中并在填充行为空间框后进行更正(更改显示刻度以停止)并告诉我你是否在 excel 中获得 100 个随机刻度时间。我什至无法将它们放到 Excel 表格中。谢谢!
  • 代码无需更改。您需要将 BehaviorSpace 实验设置为在出现绿色补丁时停止。见编辑。如果您无法使其工作,请向我们展示 BehaviorSpace 对话框。
猜你喜欢
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多