2015-05-10 37 views
1

如何比較兩個龜的值在嵌套時如何設置第一隻龜的值如果我們現在有龜的屬性年齡現在如果龜1的年齡大於20則檢查龜2的年齡在側嵌套如果第一,如果如果內如果條件爲真則置的龜1這裏的年齡的值是代碼示例netLOGO嵌套如果如果設置外部的值如果在內部如果

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 
    ] 
+0

設I 0 使j 0 讓節點1一項-龜 讓節點2龜 之一的;;初始化的距離列表 而[I <數的節點] [ 集合的J 0 而[D <數的節點] [ 組節點1龜我 組節點2龜Ĵ ;從節點零以本身 如果我= j的 [ 問節點1 [ 如果值= 0 [ 問節點2 [ 如果值= 0 [ !;在這裏我做什麼,所以我可以設置I I + 1 ] – user3155852

+0

代碼中的註釋變得不可讀的節點1 ] ] ] ] 集合的J J + 1 ] 一套價值。請修改您的原始問題。 –

回答

1

可以直接設置的值與

ask node1 [set value XXX] 

但是,您可能需要重新考慮該方法。在開始時你有let node1 one-of turtles,它隨機選擇一隻烏龜作爲node1。但是,你用循環覆蓋了這個任務,選擇特定的烏龜作爲由索引i和j提名的node1和node2。使用這樣的索引依賴於實際上具有從0到節點數量-1的who號碼的海龜。依賴於誰號碼而不是使用代理人集合(或列表)可能稍後導致問題,因爲它只會如果您在創建使用who號碼的其他任何內容之前創建所有節點海龜,並且絕不會創建(或刪除)其他節點。

+0

同意。你基本上不想寫這樣的while循環。使用'ask'循環烏龜。幾乎在所有情況下,生成的代碼都非常簡單。 –