Part of what I am trying to do is make a breed of turtles move around, but when one reaches its destination that turtle waits for a certain number of ticks before continuing ? Also is it possible to make turtles wait for different number of ticks depending upon their destination ( different patch colors). Is it a case of making a turtle breed or global variable to count the number of ticks? The hopefully relevant code is below.
Asked
Active
Viewed 3,750 times
3
-
I have tried the following, but it seems to count down within 1 tick rather than a turtle staying for x number of ticks. http://stackoverflow.com/questions/19993631/netlogo-how-to-make-turtles-stop-for-a-set-number-of-ticks-then-continue – SamP Mar 25 '14 at 12:17
1 Answers
2
You are right, this can be done by making the turtles count the number of ticks they have been on a patch. Also this has to be a turtle variable and not a global variable since each turtle will have a different value for this
The approach, I have used is this:
- Once the turtle arrives at its destination record the
ticks
(the global variable which records the number of ticks that have passed till now) into a turtle variable sayticks-since-here
. This works like a time-stamp. On each successive tick check the difference between the current-time
ticks
global variable and theticks-since-here
turtle variable. If this becomes greater than the number of ticks the turtle is allowed to stay on the patch, let it choose and move to the new destination.breed [visitors visitor]
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

Meghendra
- 671
- 6
- 10