2017-03-01 1 views
0

답변이 매우 명확하다면 나는 의심의 여지가 있으며 사과드립니다. 다음 코드를 만들었습니다. 매우 간단 & 간단 :에이전트 세트의 상담원 순서가 일치하지 않습니다.

patches-own [ tl ls ls2 ls3 ls4 tsl] 
turtles-own [mysize] 

to setup 
    clear-all 
    reset-ticks 
    crt 5 
    ask turtles [ set heading random 360 jump random 20 set mysize random-float 1] 
    asd 
    inspect patch 0 0 
end 

to asd 
    let old sum [mysize] of turtles 
    ask patches [ set tl other turtles 
    set tsl [self] of tl 
    set ls [distance myself] of tl 
    set ls2 [distance myself^2] of tl 
    set ls3 [(mysize)/old] of tl 
    ] 
    ;print tl 

end 

to initial 
    set heading random 360 jump random 20 set mysize 1 
end 

to go 
    inspect patch 0 0 
    ask turtles [ fd 1 set mysize mysize + random-float 1] 
    let qwe random-float 1 
    print qwe 
    if qwe < 0.2 and count turtles > 2 [ask one-of turtles [die]] 
    if qwe > 0.8 [ ask one-of patches [sprout 1 [initial]]] 
    asd 
    tick 
end 

당신이 볼 수 있듯이, 나는 코드의 기능을 검사하고 아래의 스냅 샷이 있습니다

enter image description here 내 질문 순서 밖으로 lsls2 에이전트 왜이다가 . Agentset TSL은 거북이의 순서를 보여 주므로 동일한 순서로 따라 만들어진 다른 에이전트 세트는 사용하지 않아야합니다.

답변

1

어떻게 든 정렬하면 Netlogo가 임의의 순서로 에이전트 집합에서 에이전트를 쿼리합니다. 기능적으로 ask tlask turtles과 같은 논리를 따르고 에이전트 세트에서 변수를 검색하는 경우에도 마찬가지입니다. 예를 들어 명령 센터를 사용하여 아래 코드를 여러 번 시도하면 (setupasd 실행 후) 쿼리 된 상담원의 순서가 매번 다를 수 있습니다.

ask patch 0 0 [ print [distance myself] of tl ]

이 모든

패치의 "TSL"목록의 작성이 다른 목록의 창조의 독립적이라고 말할 수 있습니다. 순서가 지정된 목록이 아니며 에이전트 세트 "tl"에서 임의로 호출 된 거북 목록입니다. 에이전트 세트의 일관된 순서를 얻는 한 가지 방법은 sort 프리미티브 중 하나를 사용하는 것입니다.

+0

그런 경우 에이전트 세트 중 하나에서 최소값을 가진 거북이를 찾듯이 'min-one-of'을 사용하면 모든 에이전트 세트가 비슷하게 주문되지 않거나 Netlogo에서 올바른 결과? – Yuvaraj

+0

'ask patch 0 0 [ask min-one-of tl [distance myself] [set size 3]]'와 같은 에이전트 세트를 쿼리하는 한 정확한 결과를 반환해야합니다. 또한 예제 스크린 샷에서 "tl"은 에이전트 집합이고 나머지는 목록입니다. 에이전트 목록과는 다른 방식으로 에이전트 집합을 쿼리합니다. –

+0

'tl은 agentset 만이고 다른 모든 것은리스트라고 말하고 있기 때문에. 리스트 중 하나에서'min' 값을 가진 거북이를 찾고 싶다면'ls'을 쓰고'lput'을 사용할 수 없습니까? 리스트에서 최소값의 인덱스 또는 '위치'를 얻을 수 있지만, 에이전트 세트에서 거북을 식별하기 위해 위치를 참조 할 때 오류가 발생합니다. 예를 들어'set tl other turtles tl 의 set ls [distance myself^2]를 set index position (min ls) ls'으로 설정하십시오. 이 시점까지는 작동하지만'lput item index tl'을 사용할 때까지. – Yuvaraj

관련 문제