如果在内部if中如何设置outer的值,则netLOGO嵌套

时间:2015-05-10 04:27:50

标签: netlogo

如果比较嵌套中的2个海龟值,如果我们在乌龟中有属性年龄,如果乌龟1的年龄大于20,那么如何设置第1乌龟的值当然如果在第一个if的嵌套if中检查乌龟2的年龄如果内部if条件为true则设置turtle 1的age的值是代码示例

let i 0
  let j 0

  let node1 one-of turtles
  let node2 one-of turtles
  ;; initialize the distance lists
  while [i < number-of-nodes]
  [
    set j 0
    while [j < number-of-nodes]
    [
      set node1 turtle i
      set node2 turtle j
      ;; zero from a node to itself
      if i != j 
      [
        ask node1
        [
          if value = 0 
           [

           ask node2
             [ 
               if value = 0  [
                ; here what i do so i can set the value of node1 

                     ]

          ]
         ]


      ]
      set j j + 1
    ]
    set i i + 1
  ]

1 个答案:

答案 0 :(得分:1)

您可以使用

直接设置值
ask node1 [set value XXX]

但是,您可能想重新考虑这种方法。在开始时,您有let node1 one-of turtles随机选择一只乌龟作为node1。但是你要用循环覆盖这个赋值,以选择特定的乌龟作为你的索引i和j指定的node1和node2。使用这样的索引依赖于实际上具有从0到节点数的who个数字的海龟 - 1.依赖于谁而不是使用代理集(或列表)可能会导致以后出现问题,因为只有在创建使用who号的任何其他东西之前创建所有节点龟并且永远不创建(或删除)其他节点时,它才会起作用。