Netlogo 如何使用Moore和Von Nuemman示例中的代码将邻居函数扩展到24

Netlogo 如何使用Moore和Von Nuemman示例中的代码将邻居函数扩展到24,netlogo,Netlogo,我正在学习如何使用网络徽标,我正在尝试做的一件事是创建一个比代理集“neighbor”附带的内置8更大的邻居 我想利用这个扩展的社区与更多的邻居一起玩康威的生活游戏 我使用了netlogo模型库中提供的生活游戏中的内置功能 to go let neighbors24 [list pxcor pycor] of patches with [abs pxcor <= 2 and abs pycor <= 2] ask patches [ set live-nei

我正在学习如何使用网络徽标,我正在尝试做的一件事是创建一个比代理集“neighbor”附带的内置8更大的邻居

我想利用这个扩展的社区与更多的邻居一起玩康威的生活游戏

我使用了netlogo模型库中提供的生活游戏中的内置功能


to go


  let neighbors24 [list pxcor pycor] of patches with [abs pxcor <= 2 and abs pycor <= 2]


  ask patches
    [ set live-neighbors count neighbors24 with [living?] ]
  ;; Starting a new "ask patches" here ensures that all the patches
  ;; finish executing the first ask before any of them start executing
  ;; the second ask.  This keeps all the patches in synch with each other,
  ;; so the births and deaths at each generation all happen in lockstep.
  ask patches
    [ ifelse live-neighbors = 3
      [ cell-birth ]
      [ if live-neighbors != 2
        [ cell-death ] ] ]
  tick
end


外带

让[abs pxcorNetLogo]的补丁程序的邻居24[list pxcor pycor]告诉你哪一行给出了错误。请在以后的问题中包括这一点

在这种情况下,错误(可能)是[live?]
的行
设置live Neights count Neights 24。您的问题是
with
选择指定代理集中满足条件的代理。因此
使用[pcolor=yellow]修补程序
将获得黄色补丁。但是,Neightrs24不是代理集,它是一个补丁坐标列表

创建列表是NetLogo新手的一个常见错误,特别是如果你有使用其他编程语言的经验。如果你正在创建代理标识符列表(例如补丁的坐标,或者海龟的
who
number),你几乎肯定想要一个代理集


修改后的行
让相邻的24个补丁[abs pxcor我不确定你使用内置函数的意思-库中有几个生命游戏示例,没有一个具有扩展的邻域程序。但是,库中的“摩尔和冯诺依曼示例”满足了你的要求。我去了摩尔和冯诺依曼部分,试图使用报告摩尔偏移量这是我扩展游戏生活邻域的方法。我从你的评论中猜测,这不是最好的方法。应该是有效的。你能用你的代码做一个新的问题并描述这个问题吗?这样做的目的是你可以在任何补丁周围找到邻域(而不是围绕原点)我把它作为一个新问题连同我所有的代码以及如何设置它一起提交。我的想法是它会检查每个活动补丁,但我不认为它会这样做。在这种情况下,我认为有必要用每个补丁计算
邻居24
,而不是只对所有补丁计算一次?是的,但这不是问题所在,而且模型中还存在其他设计问题。因此,我集中精力回答了有关错误的问题,并对该问题发表了评论,指出了更合适的扩展邻域方法。感谢您的回答。我添加了您所说的代码,虽然它编译正确,但我认为它无法按预期工作。我已对此进行了测试通过在空白画布上放置24个单元格周长内的3个活单元格,仍然会导致死单元格。StackOverflow要求您在有新问题时提出新问题。这样,您需要准确描述问题(例如错误消息,您的预期与您得到的相比)和相关的代码。但是看看我在对你的问题的评论中提到的代码,看看这是否有帮助。