Home > front end >  Create accumulative list over time
Create accumulative list over time

Time:12-31

I want to store values from a variable in a list, adding new variable output for every tick. Lets say the variable outputs a different value every tick. For simplicity this is determined by the formula; 2 * ticks (var = 2 * ticks), thus the list should look something like this after five ticks [0 2 4 6 8]. I cannot get this to work however. Since NetLogo does not allow taking values from the past, how would I go about this?

I now have something like this:

ask turtles[
  let var_list [ ]      
  foreach var_list [
      set var_list lput var var_list
  ]
 print var_list
]

This however only gives empty lists or lists only showing the most recent var value (when I change let var_list [] to let var_list [ 0 ]. How can I get it to correctly input the variable value in the table for every tick?

CodePudding user response:

You are using let to create a temporary local variables. There's no problem in retaining values across ticks, but you do need to use global or turtle/patch/link variables.

Here's a complete model to demonstrate

turtles-own [my-list]

to setup
  clear-all
  create-turtles 1
  [ set my-list []
  ]
  reset-ticks
end

to go
  ask turtles
  [ set my-list fput random 10 my-list
    print my-list
  ]
  tick
end
  • Related