Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to avoid turtles revisiting the patch on which they were last time?

Tags:

netlogo

Turtles stay on patches for 60 ticks, and then move to another target patch. How to avoid turtles revisiting the patch on which they were last time? Thanks

Hi Seth and Frank,

Thank you very much for your reply. I am sorry I did not describe the questions in detail.

Turtles will not visit the patch that they were on the last tick, and will move to another nearest patch instead in next tick. The following codes mean they find the nearest patch, and move on to it.

What I would want to do is the turtle will find the nearest patch again in the next tick. They will move to other alternative that is nearest to themselves, if the nearest patch is still the same one that they were on the last tick. Thanks

let closest-leaf min-one-of (patches in-radius 1 with [pcolor = lime]) [distance myself]

face closest-leaf

fd distance closest-leaf
like image 628
Ming Avatar asked Dec 04 '25 01:12

Ming


1 Answers

A good way is to have a turtles-own variable of patches visited that can be maintained (remember to initialize it to the empty list when you create the turtle).

turtles-own [ patches-visited ]

to setup
  ...
  ask turtles [ set patches-visited [] ]
  ...
end

to move
  let potential-targets filter [ not member? ? patches-visited ] target-patches
  let target-patch one-of potential-targets

  if target-patch != NOBODY [
    set patches-visited fput target-patch patches-visited
    ; move to target patch
  ]
end
like image 98
Frank Duncan Avatar answered Dec 05 '25 15:12

Frank Duncan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!