NetLogo:如何设置邻居中3个的条件4

NetLogo:如何设置邻居中3个的条件4,netlogo,Netlogo,我正在尝试编写一个if语句,如果四个邻居中的三个颜色相同,它将执行一个命令-现在,我正在使用all?但我想扩大到3个而不是4个邻居 我尝试的代码没有为if语句提供布尔值 ask patches with [pcolor = black][ if n-of 3 neighbors4 [pcolor != black] [set pcolor 55] ] 我还试图添加一个=真?但这也导致了一个错误准确地说是3个还是至少3个?如果正好是3,则更改我最后尝试了以下方法:使用[pcolor=black]

我正在尝试编写一个if语句,如果四个邻居中的三个颜色相同,它将执行一个命令-现在,我正在使用all?但我想扩大到3个而不是4个邻居

我尝试的代码没有为if语句提供布尔值

ask patches with [pcolor = black][
if n-of 3 neighbors4 [pcolor != black]
[set pcolor 55]
]

我还试图添加一个=真?但这也导致了一个错误

准确地说是3个还是至少3个?如果正好是3,则更改
我最后尝试了以下方法:使用[pcolor=black][If count neighbors4和[pcolor=55]=3[set pcolor 55]]询问补丁,哪种方法有效,但我不知道是否有更好的方法永远不要说“导致了错误”;始终提供您收到的错误消息的完整、准确的文本。这使得有人更容易帮助你。
let colors remove-duplicates [ pcolor ] of neighbors4
let three-share-color? not empty? filter [ 3 <= count neighbors4 with [ pcolor = ? ] ] colors
to-report at-least-n-share [ n reporter agentset ]
  let attributes remove-duplicates [ runresult reporter ] of agentset
  report not empty? filter [ n <= count agentset with [ runresult reporter = ? ] ] attributes
end
at-least-n-share 3 (task [ pcolor ]) neighbors4
if count neighbors4 with [ pcolor = the-color ] >= 3 [
  do-stuff
]