Control Flow (Printable)

ask-list-of-turtles list-of-turtle-ids ilist [Observer, Turtle]

Turtles whose who numbers (ID numbers) are in list-of-turtle-ids run ilist. The caller of this command waits for it to finish before continuing. If some invalid who numbers make up list-of-turtle-ids, they are ignored.

ask-patches ilist [Observer]

This observer command asks all of the patches to run the ilist. The observer will wait for the patches to finish before moving on.

ask-patch-at xcor ycor ilist [Observer, Turtle]

This command asks the patch which is xcor units in the x direction and ycor units in the y direction away from the caller to run the ilist. The caller of this command will wait for the patch to finish before moving on. The observer is considered to be located at 0 0.

ask-turtle number ilist [Observer]

Asks turtle with ID number number to perform ilist. The observer will wait for all of the turtles to finish before continuing.

ask-turtles ilist [Observer]

Asks all turtles to run ilist. The observer will wait for all of the turtles to finish before continuing.

case variable [anything1 ilist1 anything2 ilist2] [Observer, Turtle]

Checks if the first argument variable is equal to any of the anythings in the list. If it is equal, the corresponding ilist is executed and control skips to the end of the case statement. If nothing matches, no ilists are executed and control skips to the end of the case statement.

Sample usage:

case temperature
[
"cold" [show "boy, it's cold!"]
"warm" [show "mmmm. nice."]
"hot" ["wow, it's hot!"]
]

every number list to run [Observer, Turtle]

every is just like loop, in that it runs its list to run forever, but it waits number seconds between each iteration.

if condition ilist [Observer, Turtle]

Do ilist if condition reports true.

ifelse condition ilist1 ilist2 [Observer, Turtle]

Do ilist1 if condition reports true, otherwise do ilist2.

ignore whatever [Observer, Turtle]

Ignores the statement immediately following it.

let variable value [Observer, Turtle]

Declares variable as a local variable and assigns value to it. All variables must have names which begin with a colon. See the Variables page for more information on local variables.
Example:
let [:myvar 6]

loop ilist [Observer, Turtle]

Do ilist forever.

output something [Observer, Turtle]

Exits the current procedure and returns something

repeat number ilist [Observer, Turtle]

Do ilist number times.

resett, reset-timer[Observer, Turtle]

Resets the timer.

startup [Observer]

This is a reserved observer procedure name. Anything within the startup procedure will be executed each time the project is opened.

stop [Observer, Turtle]

Tells the current procedure to stop running.

stopall [Observer, Turtle]

Tells all everything to stop running, including procedures, buttons, monitors, and command centers.

timer [Observer, Turtle]

Reports the curent value of the timer.

wait number [Observer, Turtle]

Caller waits number seconds before continuing.

wait-until predicate [Observer, Turtle]

Caller waits until predicate is true.