2016-07-14 1 views
1

Netlogo를 사용하고 있습니다. 내 모델은 단일 셀에서 시작하여 필라멘트로 발전합니다. 이상적으로 말하면, 각 세포는 필라멘트가 끝에서 자라는 것보다 '나눌'기회가 있습니다. 그래서 각 세포가 직계 조상뿐만 아니라 모든 조상 (또는 그 자손? 또는 모든 거북이를 왼쪽/오른쪽으로 인식)을 인식하고 패치를 만들어서 만드는 방법이 있는지 궁금하네요. 새로운 거북이를위한 공간.거북이를 조상/자손으로 분리하는 방법은 무엇입니까? 또는 '왼쪽으로'/ '오른쪽으로'

답변

2

거북에게 계보를 소유 가치로주는 것은 어떻습니까? 글로벌 카운터를 만든 다음 거북이를 만들 때마다 카운터를 추가하십시오. 그런 식으로 3 개 또는 300 개의 세포가 있다면 그들은 각각 자신의 혈통을 가질 것입니다.

당신이 거북이가 다른 하나를 부화 한 경우, 그것은 모두 당신은 거북을 가지고 그 계보를 사용할 수 있습니다

turtles-own [lineage] 
globals [lineage-counter] 

    to setup 
    create n-of 5 turtles [ 
     set lineage lineage-counter 
     set lineage-counter lineage-counter + 1 
    ] 
    end 

(나이 또는 유사한 뭔가처럼 재설정을 금지하는) 새로운 거북이에 변수를 것 제공 사용하여 자신의 혈통의 비회원을 죽일 :

to kill 
    set invader one-of turtles here with [lineage != [lineage] of myself] 
    if invader != nobody [ask invader [die]] 
end 

가! "자신의 혈통 = [리니지]"비트 단지 넣다 한 번 확인 할 수 있습니다. 항상 저에게는 상냥합니다.

새로운 셀 패치를 이동 갖는 여기

to reproduce 
    hatch-turtles 1 [setxy ([xcor] of myself + 1) ([ycor] of myself)] 
end 
2

는 특히 간단한 방법입니다 멀리 1 패치를 부화만큼이나 간단하지만 당신은 당신이 우위를 쳤을 때 무엇을 원하는가?

to setup 
    ca 
    crt 1 [setxy min-pxcor 0 set heading 90] 
end 

to go 
    ask turtles with [random-float 1 < 0.1] [ 
    hatch 1 [ 
     create-link-from myself [hide-link] 
     set heading 90 
     ask turtles with [pxcor > [pxcor] of myself] [ 
     fd 1 
     ] 
     fd 1 
    ] 
    ] 
end