代码之家  ›  专栏  ›  技术社区  ›  Kilian Murphy

在Netlogo中是否可以创建由面片颜色定义的边界?

  •  2
  • Kilian Murphy  · 技术社区  · 7 年前

    我试图让我的海龟“巡逻”环境的某个区域,但当我添加代码来容纳它们时,它们会走到区域的边缘,然后停止,蜱也会停止。

    相反,如果他们的“能量”变量低于[x],是否可能允许他们离开该领土

    1 回复  |  直到 7 年前
        1
  •  2
  •   Marcel De Guérande    7 年前

    对于周长问题,如果我理解您的问题,您可以在面片设置中这样做,以在最大坐标处定义周长:

    ask patches with [
        pxcor = max-pxcor or
        pxcor = min-pxcor or
        pycor = max-pycor or
        pycor = min-pycor ] [
        set pcolor red ;; This setup a red perimeter
      ]
    

    否则,您可以选择这样的精确坐标(16x16正方形示例):

    ask patches with [ pycor >= -16  and pycor >= 16] 
      [ set pcolor red ]
        ask patches with [ pycor <= -16  and pycor <= 16]
      [ set pcolor red ]
        ask patches with [ pxcor >= -16  and pxcor >= 16]
      [ set pcolor red ]
        ask patches with [ pxcor <= -16  and pxcor <= 16]
      [ set pcolor red ]
    

    然后将其放在巡逻步骤中,以禁止在红色斑块上行走:

    ifelse [pcolor] of patch-ahead 1 = red
          [ lt random-float 360 ]   ;; See a red patch ahead : turn left randomly
          [ fd 1 ]                  ;; Otherwise, its safe to go foward.