Question

I have this basic code for setup and moving turtle. By this time I want only few turtles to appear during setup and then when they move. Other turtles will show or will become visible.

to setup
crt 100
setxy random 19 random 80
end

to go
fd 1
end

I tried this. But I got error

to setup
  clear-all
  create-turtles random 10
  reset-ticks
end

to go
  fd 1
  if count turtles < 100 [
    create-turtles min list (random 10) (100 - count turtles)
  ]
  tick
end
Was it helpful?

Solution

Your question is not that clear, if you want to be able to set visibility of turtles you should use hidden? Primitive to set visibility of turtles, Following example shows how turtles appear when their who id is smaller than ticks, in tick 101 all turtles will be visible.

to setup
  clear-all
  reset-ticks
  crt 100 [
    set hidden? true
    setxy random 19 random 80
  ]


end

to go
  ask turtles
  [
    if who < ticks
    [
      set hidden? false
      fd 1
    ]
    ]

  ask patch 0 0 [set plabel ticks] ; just for your info
  ask patch 1 1 [set plabel "Ticks"] ; just for your info
  tick
end

After 1 tick only one turtle is visible:

enter image description here

And now 40 turtles are visible :

enter image description here

Update:

In this example, you can have a list of numbers that you want to ask turtles to set their visibility to true:

globals [ number-to-set-visible]
to setup
  clear-all
  reset-ticks
  set number-to-set-visible [ 5 5 7 8 2  ]
  crt 100 [
    set hidden? true
    setxy random 19 random 80
  ]


end

to go
  if visibility-condition and length number-to-set-visible > 0 

    [
      ask n-of item 0 number-to-set-visible turtles [

        set hidden? false
        ]

      set number-to-set-visible remove-item 0 number-to-set-visible
      ] 

     ask turtles with [not hidden? ]
     [
      fd 1

     ]


  tick
end

to-report visibility-condition
 report ticks mod 100 = 0 and ticks > 0
end

OTHER TIPS

Marzy's answer covers how to create invisible turtles during setup, then gradually make them visible during go.

It's not clear to me if you actually need this visible/invisible distinction. Do you actually need all the turtles to exist from the beginning? Might it be OK to just create a few more turtles each tick? If so, try code like this:

to setup
  clear-all
  create-turtles random 10
  reset-ticks
end

to go
  if count turtles < 100 [
    create-turtles min list (random 10) (100 - count turtles)
  ]
  tick
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top