Random 如何使用不同的道路网格获得相同的景观?

Random 如何使用不同的道路网格获得相同的景观?,random,netlogo,Random,Netlogo,我希望每次在NetLogo中创建景观时都能获得相同的景观。为此,我使用了 random-seed 0 create-landscape 当我在每次创建景观时保持相同的道路配置(下图中以白色表示)时,它就会起作用: 图1: 但是,当我更改道路的配置时,通过使用随机种子0,蓝色、黑色和红色块的位置不同(请参见下图) 图2: 图3: 对于图2和图3,我正在寻找一种方法来获得与图1相同的蓝色、黑色和红色块的位置。 这些道路是用人工修建的。为了构建我的景观,我第一次创建了道路网格,然后随机放置黑色

我希望每次在NetLogo中创建景观时都能获得相同的景观。为此,我使用了

random-seed 0
create-landscape
当我在每次创建景观时保持相同的道路配置(下图中以白色表示)时,它就会起作用:

图1:

但是,当我更改道路的配置时,通过使用
随机种子0
,蓝色、黑色和红色块的位置不同(请参见下图)

图2:

图3:

对于图2和图3,我正在寻找一种方法来获得与图1相同的蓝色、黑色和红色块的位置。 这些道路是用人工修建的。为了构建我的景观,我第一次创建了道路网格,然后随机放置黑色、蓝色和红色的块


非常感谢您的帮助。

道路网生成代码中的某些内容会影响随机数生成器的状态。它可以是很多东西。例如,即使是一个简单的
ask
,也会利用随机性(以随机顺序迭代代理)。看

可能有两种不同的方法来处理这个问题,但我建议使用来隔离创建块的代码,并让它使用自己的随机数生成器。比如:

to create-landscapes
  create-roads
  with-local-randomness [
    random-seed 0
    create-blocks
  ]
end

也许先把风景画出来。。。。然后覆盖道路。这也可以简化景观代码,因为您的代码不必担心覆盖道路

此外,也许是时候从只使用颜色毕业了。也许斑块需要一个变量,比如“是道路吗?”和另一个变量,比如“土地利用”。。。分别填写这些变量。那么,这只是一个如何显示信息的问题,例如:

ask patches
[ ifelse is-road?
  [ set pcolor white ]
  [ set pcolor item land-use land-use-colors ]
]

非常感谢尼古拉斯。我可以使用带有局部随机性的
随机种子0对蓝色块执行此操作,但对红色和黑色块无效。我从[link]()创建了这些块。例如,在这个问题中,我为黑色块创建了一个函数
create black patches
turn black
。非常感谢您的帮助。好吧,如果您通过拾取一个补丁来“播种”您的街区,很可能是拾取的补丁不再落在同一街区内,因为您的道路位置不同。你需要找到一种不同的方法来挑选你的积木。但这是另一个问题。