选择修补程序或netlogo

选择修补程序或netlogo,netlogo,patch,neighbours,Netlogo,Patch,Neighbours,我正试图塑造一个从事轮换耕种的社区。为此,我希望每个家庭每年都更换补丁。根据工作时间和人数的不同,每个家庭可以有不同的作物种植面积。我希望他们能够选择一个有足够数量的森林斑块来开放他们的作物。例如,一个家庭的作物面积为3,因此新位置需要是一个有两个其他森林斑块邻居的森林斑块。你知道我该怎么说吗 谢谢这里有一个可能的解决方案: patches-own [ patch-type ] breed [ households household ] to setup clear-all ask

我正试图塑造一个从事轮换耕种的社区。为此,我希望每个家庭每年都更换补丁。根据工作时间和人数的不同,每个家庭可以有不同的作物种植面积。我希望他们能够选择一个有足够数量的森林斑块来开放他们的作物。例如,一个家庭的作物面积为3,因此新位置需要是一个有两个其他森林斑块邻居的森林斑块。你知道我该怎么说吗


谢谢

这里有一个可能的解决方案:

patches-own [ patch-type ]
breed [ households household ]

to setup
  clear-all
  ask patches [ set patch-type one-of ["forest" "rock" "sand"] ]
  let forest-neighbors-needed 2
  create-households 100 [
    let candidate-locations patches with [
      not any? households-here and
      patch-type = "forest" and
      count neighbors with [ patch-type = "forest" ] >= forest-neighbors-needed
    ]
    ifelse any? candidate-locations [
      move-to one-of candidate-locations
    ] [
      error "No suitable location found!"
    ]
  ]
end
这种方法不是最有效的,因为它会为它创建的每个家庭重建一组可能的位置,但是如果你的模型不是两个大的,它应该不会有太大的区别


请注意,您没有向我们提供关于您的模型是如何组织的很多详细信息,因此我不得不做出一些假设。下次,请告诉我们更多:您有什么品种,它们的变量是什么,等等。理想情况下,发布一段代码,展示您已经尝试过的内容。

以下是一个可能的解决方案:

patches-own [ patch-type ]
breed [ households household ]

to setup
  clear-all
  ask patches [ set patch-type one-of ["forest" "rock" "sand"] ]
  let forest-neighbors-needed 2
  create-households 100 [
    let candidate-locations patches with [
      not any? households-here and
      patch-type = "forest" and
      count neighbors with [ patch-type = "forest" ] >= forest-neighbors-needed
    ]
    ifelse any? candidate-locations [
      move-to one-of candidate-locations
    ] [
      error "No suitable location found!"
    ]
  ]
end
这种方法不是最有效的,因为它会为它创建的每个家庭重建一组可能的位置,但是如果你的模型不是两个大的,它应该不会有太大的区别


请注意,您没有向我们提供关于您的模型是如何组织的很多详细信息,因此我不得不做出一些假设。下次,请告诉我们更多:你有什么品种,它们的变量是什么,等等。理想情况下,发布一些代码,展示你已经尝试过的东西。

嘿,尼古拉斯,你帮了我很多!我会记住这一点,下次再提供更多细节:)非常感谢!嘿,尼古拉斯,你帮了我很多!我会记住这一点,下次再提供更多细节:)非常感谢!