2014-03-25 4 views
2

거북이의 품종을 만들려고 노력하고 있지만 거북이가 계속하기 전에 거북이가 특정 수의 진드기를 기다리는 목적지에 도달하면 어떻게 될까요? 또한 거북이가 대상 (다른 패치 색상)에 따라 다른 수의 진드기를 기다리는 것도 가능합니다. 진드기의 수를 세는 거북이 또는 전역 변수를 만드는 경우입니까? 희망적인 코드는 다음과 같습니다.거북이 만들기 x 진드기 수 만들기

+0

나는 다음을 시도하지만, 1 틱이 아니라 진드기의 X 번호에 머물 거북이 내에서 카운트 다운 보인다. http://stackoverflow.com/questions/19993631/netlogo-how-to-make-turtles-stop-for-a-set-number-of-ticks-then-continue – SamP

답변

2

당신이 맞습니다. 이것은 거북이들이 패치 상에있는 틱의 수를 세게함으로써 가능합니다. 거북이가 대상 기록에 도착하면

  1. : 또한이 각 거북이, 내가 사용했던이

    접근 방식에 대해 다른 값을가집니다 때문에 거북이 변수가 아닌 글로벌 변수가 될하는 것은 이것이다 ticks (지금까지 통과 한 틱의 수를 기록하는 전역 변수)은 ticks-since-here이라고합니다. 이것은 타임 스탬프처럼 작동합니다.

  2. 각 연속 눈금에서 현재 시간 ticks 전역 변수와 거북 변수 ticks-since-here 사이의 차이점을 확인하십시오. 이것이 거북이가 패치에 머무르는 것이 허용되는 틱 수보다 커지면 그것을 선택하여 새로운 대상으로 이동하십시오.

    품종 [방문자 방문자]

    globals [ number-of-visitors ] 
    
    visitors-own [ 
        ; visitors own destination 
        destination 
        ticks-since-here 
    ] 
    
    to go 
        ask visitors [ 
        move 
        ] 
        tick 
    end 
    
    to move 
        ; Instructions to move the agents around the environment go here 
        ; comparing patch standing on to dest, if at dest then choose random new dest 
        ; then more forward towards new dest 
        ifelse (patch-here = destination) 
        [ 
        if ticks - ticks-since-here > ticks-to-stay-on-patch patch-here 
        [ 
         set ticks-since-here 0 
         set destination one-of patches with 
         [ 
         pcolor = 65 or pcolor = 95 or pcolor = 125 or pcolor = 25 or pcolor = 15 or pcolor = 5 
         ] 
        ] 
        ] 
        [ 
        face destination 
        forward 1 
        if (patch-here = destination) 
        [ 
         set ticks-since-here ticks 
        ] 
        ] 
    end 
    
    to-report ticks-to-stay-on-patch [p] 
        if [pcolor] of p = 65 
        [ 
         report 6 
        ] 
        if [pcolor] of p = 95 
        [ 
         report 5 
        ] 
        if [pcolor] of p = 125 
        [ 
         report 4 
        ] 
        if [pcolor] of p = 25 
        [ 
         report 3 
        ] 
        if [pcolor] of p = 15 
        [ 
         report 2 
        ] 
        if [pcolor] of p = 5 
        [ 
         report 1 
        ] 
    end 
    
    to setup-people 
        ;;;; added the following lines to facilitate world view creation 
        ask patches 
        [ 
        set pcolor one-of [65 95 125 25 15 5] 
        ] 
        set number-of-visitors 100 
        ;;;; 
    
        create-visitors number-of-visitors 
        [ 
        ask visitors 
        [ 
         ; set the shape of the visitor to "visitor" 
         set shape "person" 
         ; set the color of visitor to white 
         set color white 
         ; give person a random xy 
         setxy (random 50) (random 50) 
         ; set visitors destination variable 
         set destination one-of patches with 
         [ 
         pcolor = 65 or pcolor = 95 or pcolor = 125 or pcolor = 25 or pcolor = 15 or pcolor = 5 
         ] 
        ] 
        ] 
    end