首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net徽标-用特定颜色的海龟填充邻近的补丁直到满

Net徽标-用特定颜色的海龟填充邻近的补丁直到满
EN

Stack Overflow用户
提问于 2012-11-05 12:01:39
回答 1查看 4.1K关注 0票数 3

我正试着要求白海龟在邻近的8个空旷空间之一制造黄海龟。如果没有自由空间,海龟就什么也不会产生。注:白海龟保持白色,并生产黄海龟,他们可以繁殖自己以及其他黄海龟。总之,最后我想用黄海龟填满黑色的空间。

代码语言:javascript
复制
breed [ cells cell ]
cells-own [ n ]

to setup
  clear-all
  set-default-shape cells "square"
  ask patches [ if pycor = min-pycor [sprout-cells 1]]
  ask cells [ ifelse random 10 < 2 [set color white] [set color yellow]]

谢谢你的回复。

我会解释我想做的事:

  1. 白色方格表示“干细胞”,这些干细胞具有自我繁殖和产生另一种细胞(例如TA细胞)的能力,因此,最初每个白细胞将在其上方或其上面的一个角产生另一个细胞。
  2. 在第二步中,每个TA细胞在其周围的任何空隙中随机产生其他细胞。
  3. 第三,干细胞(白色方块)重复第一步,同时TA细胞填补其周围的一个空空间。这些细胞(干细胞和TA细胞)一旦周围没有空空间就停止产生新的细胞(当8个邻居已经被填充时)。
  4. 在最后阶段,所有的黑色空间都应该填充TA细胞。最后一行的黄色方块基本上什么也做不了。

再次感谢你的帮助。

代码语言:javascript
复制
  reset-ticks
end

to go
  ask cells
    [ set n count neighbors with [pcolor = yellow] ]
  ask cells
    [ if n >= 1
      [ set color yellow] ]
  tick
  ;ask cells 
  ;[if ticks = 10
    ;[set color yellow]]
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-05 17:54:41

你到底想做什么对我来说还不完全清楚。我将提出一个可能的解释,但无论我的解释是否正确,你都应该设法澄清你的问题。

为了理解您的代码,在我看来,patchesturtles之间似乎有点混淆。在您的go过程中,如果cells有一个黄色的邻居,您将要求cells将其变为黄色。我认为你想要的是一个黄色的正方形出现在与黄色方块相邻的斑块上。您正在尝试填充的空白补丁还没有任何cells,所以ask cells变成黄色无助于您在这里。

如果您真的想继续使用cell代理,保持当前的setup过程,您可以这样做:

代码语言:javascript
复制
to go
  ask patches with [not any? turtles-here] [
    if any? neighbors with [any? turtles-here] [
      sprout-cells 1 [
        set color yellow
      ]
    ]
  ]
end

(如果只希望单元格自下而上生长,则应右键单击视图并选择Edit...,从而关闭视图设置中的包装)

现在,一种完全不同的方法,如果您只需要某种元胞自动机的话,可能会更简单一些,那就是抛弃代理,只使用补丁。会给你这样的东西:

代码语言:javascript
复制
to setup
  clear-all
  ask patches [
    if pycor = min-pycor [
      ifelse random 10 < 2 
        [set pcolor white]
        [set pcolor yellow]  
    ]
  ]
  reset-ticks
end

to go
  ask patches with [pcolor = black] [
    if any? neighbors with [pcolor = yellow or pcolor = white] [
      set pcolor yellow
    ]
  ]
  tick
end

这两种方法都是有效的。第一个更令人赏心悦目。第二个稍微简单一点,因为你根本不需要海龟。这取决于你最终想做什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13231720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档