BehaviourComposer: ignore everything before this.
Begin micro-behaviour:
Begin description: Define a NetLogo reporter that computes all the nodes that can be reached from an initial list of nodes. End description
All reachable nodes
Begin NetLogo code:
to-report all-nodes-reachable-from [nodes] report all-nodes-reachable-from-2 nodes [] end to-report all-nodes-reachable-from-2 [nodes nodes-already-visited] if nodes = [] [report nodes-already-visited] let new-nodes-already-visited sentence nodes nodes-already-visited let new-nodes [] forEach nodes [ask ? [ask link-neighbors [if not member? self new-nodes-already-visited and not member? self new-nodes [set new-nodes fput self new-nodes]]]] report all-nodes-reachable-from-2 new-nodes new-nodes-already-visited end
End NetLogo code
This repeatedly searches for the nodes reachable from the initial list of nodes or the most recent nodes found accumulating them all into a list.
All reachable nodes was implemented by Ken Kahn on 8 July, 2010.
BehaviourComposer: ignore everything after this.