Vacancy Chains
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
Vacancy chains are a means of resource allocation alternative to markets or other forms of competition. Vacancy chains take place if the resource is sufficiently specific and the information sufficiently restricted for there being only one applicant to the resource. In fact, if there are two or more applicants a competition sets in, and eventually a market may arise in order to manage this competition.
Quite often, organizations restrict information and require specificity in order to allocate resources by means of vacancy chains. For instance, positions can be made very specific and information on available positions can be made hardly available so careers happen because the retirement of a high-ranked official triggers a chain of promotions among his subordinates. Another instance may be the way the most expensive and unique houses are allocated. Similarly, vacancy chains have been observed among hermit crabs lining up for occupying empty shells. Decentralized allocation of problems among robots can also be achieved by means of vacancy chains.
The vacancy chains model considers a set of positions ordered in strata. If a vacancy is produced, the corresponding position is occupied by agents from lower strata. Thus, vacancy chains propagate from upper to lower strata.
HOW IT WORKS
The model landscape represents positions in an organization. Each position is characterized by an "elevation" representing the stratum to which it belongs - strata may represent levels in a hierarchy, size of houses or shells, etc. The positions of stratum zero represent the surrounding competitive arena. The highest stratum is white, the lowest stratum is black, intermediate strata are depicted according to different shades of grey.
Vacancies appear as green areas. If they find just one neighbor exactly one stratum lower than them, they diffuse down the ladder leaving a yellow stripe behind them. Thus, vacancy chains appear as yellow worms with a green head.
As soon as a vacancy finds two or more neighbors exactly one stratum lower than itself, the vacancy chain stops. This is the point where competition begins. It may happen within an organization, or at the border between an organization and the surrounding market.
Vacancy chains may be influenced by the size of organizations, as well as by extent of their connections. This model allows to build "walls" in organization space that halt the propagation of vacancy chains. Walls generate islands of larger portions of positions eventually linked by tiny bridges, mimicking the formation of network organizations.
HOW TO USE IT
The button "Setup Positions" assigns positions to strata. The slider "n-walls" selects the number of walls that separate positions from one another.
The number of strata is set by means of the slider "n-of-strata". The distribution of strata is chosen by means of the selector "strata-distribution", which can be:
1) "hierarchical": A hierarchy characterized by an exponential distribution of position, i.e. exponentially more positions have been assigned to lower strata;
2) "inverse": An inverted hierarchy characterized by an exponential distribution of positions, i.e. exponentially more positions have been assigned to upper strata;
3) "linear": A linear organization characterized by a uniform distribution, i.e. there are just as many positions in the lower as in the upper strata;
4) "lean": A hierarchy characterized by an exponential distribution of the upper positions and a poisson distribution of the lower strata, i.e. such that middle positions are far less than in the hierarchy produced by an exponential distribution.
The slider "starting stratum" allows to select the stratum where vacancies will be created. The button "Setup Vacancies" creates vacancies at the desired stratum. An error message is issued if the starting stratum is larger than the number of strata.
The button "Go" creates vacancy chains. Chains form depending on the size of the neighborhood that observes a vacancy. The model allows to select a neighborhood of 4, 8 or 24 positions around a vacancy.
If the "verbose?" option is selected, the model writes on the Command Center which vacancies are forming chains, and how long they are. Note that an isolated vacancy is a chain of length 1.
The button "iterate" repeats the sequence "Setup Positions" - "Setup Vacancies" - "Go" a number of times specified by "times". The slider "max-chain-length" specifies the maximum length of chains that will be analyzed. The monitor "max-attained" tells which is the maximum chain length that has been actually attained. In order for "iterate" to work properly, "max-chain-length" must be greater than "max-attained". At the end, the following information is written on the command center:
- The percent of chains of each length;
- The number and percent of chains of length greater than one.
All information is averaged over the number of runs specified by "times".
THINGS TO NOTICE
The larger the neighborhood, the more likely that an agent able to fill a vacancy will found. However, the larger the neighborhood, the more likely that two or more agents able to fill a vacancy are found. Thus, large neighborhoods lengthen or shorten chains depending on starting stratum and organizational form.
The functioning of the model is clearest if the number of strata is small, i.e. 2 or 3. Then, it is easy to see that even if positions of the required level are available in the neighborhood of a vacancy, the chain stops if the neighborhood entails more than one such vacancy.
THINGS TO TRY
Depending on organizational form, certain configurations of parameters are such that the proportion of chains of length greater than one increases with the size of the neighborhood, others are such that the proportion of chains of length greater than one decreases with the size of the neighborhood. A few configurations are such that the proportion of chains of length greater than one increases when the neighborhood increases from 4 to 8, decreases when the neighborhood increases from 8 to 24. The first two regions correspond to connected areas in parameters space, whereas the third region is a thin border between them.
EXTENDING THE MODEL
This model focuses on vacancy chains as a means for resource allocation. However, even after a vacancy chains loses this function to a market or some other form of competition, it can still be tracked. A model that would also allow for resource allocation by competition would enable the user to observe vacancy chains even after they lost their function as a means for the allocation of scarce resources.
NETLOGO FEATURES
The procedure "form-chains" calls itself recursively. It forms chains by moving vacancies down positions of decreasing elevation.
CREDITS AND REFERENCES
This model is thoroughly described in:
Guido Fioretti
A Model of Vacancy Chains as a Mechanism for Resource Allocation
Journal of Mathematical Sociology, 34 (1) 2010: 52-75.
This model was built by:
Guido Fioretti
University of Bologna
Department of Management Science
www.cs.unibo.it/fioretti
Comments and Questions
;; These are global variables: globals [ ;; The following two boolean variables take the values 0 and 1 instead of true and false because they must be able ;; to generate error messages even if they have not been initialized. positions-made? ;; positions must be made before vacancies can be made; vacancies-made? ;; vacancies must be made before vacancy chains can be made; wall-length ;; is the length of walls; meter ;; measures the length of walls; direction ;; tells where walls are expanded; x-target ;; the x-coordinate of a position to be reached; y-target ;; the y-coordinate of a position to be reached; reachable? ;; whether the target position can be actually reached; x y ;; scan the screen in search for patches where new turtles can be posed; cum-num-chains-by-length-list ;; a list for the cumulative number of chains, where each element refers to a different chain length max-chain-length-attained ;; the maximum length vacancy chains actually reached. ] ;; These variables belong to patches: patches-own [elevation] ;; the stratum of a patch, with 0 as the lowest stratum. ;; These variables belong to turtles: turtles-own [cl] ;; the length of a vacancy chain. ;; Repeats the sequence "setup-hierarchy" - "setup-vacancies" - "go" so many times as the parameter "times". ;; At the end, it prints on the Command Center the average number of chains for each chain length. to iterate ;; The list is filled up with values. Counters are in order because this list may entail several instances of the same value. repeat times [ setup-positions setup-vacancies go ;; The list of the cumulative number of chains of each length is initialized. set cum-num-chains-by-length-list [] repeat max-chain-length [set cum-num-chains-by-length-list fput 0 cum-num-chains-by-length-list] ;; Introduces a counter. let i 0 ;; Updates the list of the cumulative number of chains of each length. foreach cum-num-chains-by-length-list [ set cum-num-chains-by-length-list replace-item i cum-num-chains-by-length-list (? + count turtles with [cl = i + 1]) set i (i + 1) ] ] ;; The list is stripped of all last 0 values. set cum-num-chains-by-length-list reverse cum-num-chains-by-length-list let first-non-zero-value-found? false foreach cum-num-chains-by-length-list [ ifelse (? = 0 and first-non-zero-value-found? = false) [set cum-num-chains-by-length-list remove ? cum-num-chains-by-length-list] [set first-non-zero-value-found? true] ] set cum-num-chains-by-length-list reverse cum-num-chains-by-length-list set max-chain-length-attained length cum-num-chains-by-length-list ;; Output is printed on the screen let i 0 foreach cum-num-chains-by-length-list [ set i (i + 1) type "Percent of chains of length " type i type ": " ifelse (sum cum-num-chains-by-length-list > 0) [print ? * 100 / sum cum-num-chains-by-length-list] [print 0] ] print "" let cum-num-chains-by-length-except-length-one-list remove-item 0 cum-num-chains-by-length-list type "Number of chains of length greater than 1: " print (sum cum-num-chains-by-length-except-length-one-list) / times type "Percent of chains of length greater than 1: " ifelse (sum cum-num-chains-by-length-list > 0) [print (sum cum-num-chains-by-length-except-length-one-list) * 100 / (sum cum-num-chains-by-length-list)] [print 0] print "" print "" print "" end to setup-positions clear-all ;; Patches are assigned an "elevation" either according to a decreasing exponential or a uniform or an increasing exponential ;; distribution. Elevation takes integer values. ;; The elevation is reflected by a gray scale. Patches with highest elevation are white, patches with lowest elevation are black. ask turtles [die] ask patches [ ;; Decreasing exponential distribution. if (strata-distribution = "hierarchical") [ set elevation n-of-strata + 1 while [elevation > n-of-strata] [set elevation round random-exponential ((1 + n-of-strata) / 4)] ] ;; The complement of a decreasing exponential distribution. if (strata-distribution = "inverse") [ set elevation -1 while [elevation < 0] [set elevation n-of-strata - round random-exponential ((1 + n-of-strata) / 4)] ] ;; Uniform distribution. if (strata-distribution = "linear") [set elevation random (1 + n-of-strata)] ;; Mixed: decreasing exponential for high strata, the complement of a poisson distribution for low strata. if (strata-distribution = "lean") [ ifelse (random 2 = 0) [ set elevation n-of-strata + 1 while [elevation > n-of-strata] [set elevation round random-exponential (1 + n-of-strata) / 4] ][ set elevation -1 while [elevation < 0] [set elevation n-of-strata - round random-poisson (1 + n-of-strata) / 4] ] ] if (elevation <= n-of-strata) [set pcolor scale-color black elevation 0 n-of-strata] ] ;; Builds walls. if (n-walls > 0) [ while [count patches with [pcolor = red] < n-walls] [ ask patch (random-pxcor) (random-pycor) [ set pcolor red set elevation n-of-strata + 1 ] ] ask patches with [pcolor = red] [ set wall-length (random max (list max-pxcor max-pycor) + 1) if (wall-length > 1) [ set meter 1 set direction random 360 add-brick ] ] ] ;; Global variables keep track of the fact that positions have been made, whereas vacancies are still waiting. set positions-made? 1 set vacancies-made? 0 end ;; Bricks are added to walls. This procedure is called by "setup-positions". to add-brick let next-brick patch-at-heading-and-distance direction 1 let reach 1 while [[pcolor] of next-brick = red and any? patches with [pcolor != red]] [ set reach reach + 1 if (random 10 <= 1) [set direction random 360] set next-brick patch-at-heading-and-distance direction reach ] ask next-brick [ set pcolor red set elevation n-of-strata + 1 set meter meter + 1 if (meter < wall-length) [add-brick] ] end to setup-vacancies ifelse (starting-stratum > n-of-strata) [ print "The starting stratum cannot be greater than the number of strata." ][ ifelse (positions-made? = 0) [ print "Please press the Setup Positions button." ][ ;; Two nested WHILEs in order to scan the screen. ;; If a free patch of the required elevation is found, a new turtle is created and posed there. set x min-pxcor while [x <= max-pxcor] [ set y min-pycor while [y <= max-pycor] [ if ([elevation] of patch x y = starting-stratum) [ set-default-shape turtles "vacancy" crt 1 [ set color green set xcor x set ycor y set cl 0 ] ] set y (y + 1) ] set x (x + 1) ] ;; A global variable keeps track of the fact that vacancies have been made available. set vacancies-made? 1 ] ] reset-ticks end to go ifelse (starting-stratum > n-of-strata) [ print "The starting stratum cannot be greater than the number of strata." ][ if (positions-made? = 0) [print "Please press the 'Setup Positions' button."] if (vacancies-made? = 0) [print "Please press the 'Setup Vacancies' button."] if (positions-made? = 1 and vacancies-made? = 1) [ ask turtles [form-chains] ;; Vacancy chains cannot be formed again. set positions-made? 0 set vacancies-made? 0 ] ] tick end to form-chains ;; This procedure calls itself recursively with decreasing values of elevation until two or more patches with equal elevation are found. ;; Elevation in neighboring patches. Angles are measured clockwise from pi/2. ;; Turtles are the heads of vacancy chains. Eventually, turtles move. ;; First, they look for a patch among the closest neighbors (4- or 8- or 24-neighborhood). In a second turn, they will look among the second-tier neighbors (24-neighborhood). ;; Each time the procedure "form-chains" is called, the chain lenght is increased by one unit. set cl (cl + 1) ;; If the 4-neighborhood has been chosen. if (neighborhood = 4) [ ;; Look north. ifelse (any? turtles-on patch-at 0 1 = false and ([elevation] of patch-at 0 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor + 1 form-chains ][ ;; Look east. ifelse (any? turtles-on patch-at 1 0 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 1 form-chains ][ ;; Look south. ifelse (any? turtles-on patch-at 0 -1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor - 1 form-chains ][ ;; Look west. ifelse (any? turtles-on patch-at -1 0 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 = [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor - 1 form-chains ][ if (verbose?) [ type "Vacancy " type who type " produced a chain of length " print cl ] ] ] ] ] ] ;; If the 8-neighborhood has been chosen. if (neighborhood = 8) [ ;; Look north. ifelse (any? turtles-on patch-at 0 1 = false and ([elevation] of patch-at 0 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor + 1 form-chains ][ ;; Look north-east. ifelse (any? turtles-on patch-at 1 1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor + 1) form-chains ][ ;; Look east. ifelse (any? turtles-on patch-at 1 0 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 1 form-chains ][ ;; Look south-east. ifelse (any? turtles-on patch-at 1 -1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor - 1) form-chains ][ ;; Look south. ifelse (any? turtles-on patch-at 0 -1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor - 1 form-chains ][ ;; Look south-west. ifelse (any? turtles-on patch-at -1 -1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor - 1) form-chains ][ ;; Look west. ifelse (any? turtles-on patch-at -1 0 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor - 1 form-chains ][ ;; Look north-west. ifelse (any? turtles-on patch-at -1 1 = false and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 = [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor + 1) form-chains ][ if (verbose?) [ type "Vacancy " type who type " produced a chain of length " print cl ] ] ] ] ] ] ] ] ] ] ;; If the 24-neighborhood has been chosen. if (neighborhood = 24) [ ;; Look north. ;; North, first tier. set x-target xcor set y-target ycor + 1 check-reachability ifelse (any? (turtles-on patch-at 0 1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 1 form-chains ][ ;; North, second tier. set x-target xcor set y-target ycor + 2 check-reachability ifelse (any? (turtles-on patch-at 0 2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 2 form-chains ][ ;; Look north-northeast (only the second tier). set x-target xcor + 1 set y-target ycor + 2 check-reachability ifelse (any? (turtles-on patch-at 1 2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 = [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor + 2) form-chains ][ ;; Look north-east. ;; North-East, first tier. set x-target xcor + 1 set y-target ycor + 1 check-reachability ifelse (any? (turtles-on patch-at 1 1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor + 1) form-chains ][ ;; North-East, second tier. set x-target xcor + 2 set y-target ycor + 2 check-reachability ifelse (any? (turtles-on patch-at 2 2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 = [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 2) (ycor + 2) form-chains ][ ;; Look east-northeast (only the second tier). set x-target xcor + 2 set y-target ycor + 1 check-reachability ifelse (any? (turtles-on patch-at 2 1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 2) (ycor + 1) form-chains ][ ;; Look east. ;; East, first tier. set x-target xcor + 1 set y-target ycor check-reachability ifelse (any? (turtles-on patch-at 1 0) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 1 form-chains ][ ;; East, second tier. set x-target xcor + 2 set y-target ycor check-reachability ifelse (any? (turtles-on patch-at 2 0) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor + 2 form-chains ][ ;; Look east-southeast (only the second tier). set x-target xcor + 2 set y-target ycor - 1 check-reachability ifelse (any? (turtles-on patch-at 2 -1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 2) (ycor - 1) form-chains ][ ;; Look southeast. ;; South-East, first tier. set x-target xcor + 1 set y-target ycor - 1 check-reachability ifelse (any? (turtles-on patch-at 1 -1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor - 1) form-chains ][ ;; South-East, second tier. set x-target xcor + 2 set y-target ycor - 2 check-reachability ifelse (any? (turtles-on patch-at 2 -2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 = [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 2) (ycor - 2) form-chains ][ ;; Look south-southeast (only the second tier). set x-target xcor + 1 set y-target ycor - 2 check-reachability ifelse (any? (turtles-on patch-at 1 -2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 = [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor + 1) (ycor - 2) form-chains ][ ;; Look south. ;; South, first tier. set x-target xcor set y-target ycor - 1 check-reachability ifelse (any? (turtles-on patch-at 0 -1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor - 1 form-chains ][ ;; South, second tier. set x-target xcor set y-target ycor - 2 check-reachability ifelse (any? (turtles-on patch-at 0 -2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set ycor ycor - 2 form-chains ][ ;; Look south-southwest (only the second tier). set x-target xcor - 1 set y-target ycor - 2 check-reachability ifelse (any? (turtles-on patch-at -1 -2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 = [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor - 2) form-chains ][ ;; Look south-west. ;; South-West, first tier. set x-target xcor - 1 set y-target ycor - 1 check-reachability ifelse (any? (turtles-on patch-at -1 -1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor - 1) form-chains ][ ;; South-West, second tier. set x-target xcor - 2 set y-target ycor - 2 check-reachability ifelse (any? (turtles-on patch-at -2 -2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 = [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 2) (ycor - 2) form-chains ][ ;; Look west-southwest (only the second tier). set x-target xcor - 2 set y-target ycor - 1 check-reachability ifelse (any? (turtles-on patch-at -2 -1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 2) (ycor - 1) form-chains ][ ;; Look west. ;; West, first tier. set x-target xcor - 1 set y-target ycor check-reachability ifelse (any? (turtles-on patch-at -1 0) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor - 1 form-chains ][ ;; West, second tier. set x-target xcor - 2 set y-target ycor check-reachability ifelse (any? (turtles-on patch-at -2 0) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 = [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] set xcor xcor - 2 form-chains ][ ;; Look west-northwest (only the second tier). set x-target xcor - 2 set y-target ycor + 1 check-reachability ifelse (any? (turtles-on patch-at -2 1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 2) (ycor + 1) form-chains ][ ;; Look northwest. ;; North-West, first tier. set x-target xcor - 1 set y-target ycor + 1 check-reachability ifelse (any? (turtles-on patch-at -1 1) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 = [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor + 1) form-chains ][ ;; North-West, second tier. set x-target xcor - 2 set y-target ycor + 2 check-reachability ifelse (any? (turtles-on patch-at -2 2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 = [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 != [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 2) (ycor + 2) form-chains ][ ;; Look north-northwest (only the second tier). set x-target xcor - 1 set y-target ycor + 2 check-reachability ifelse (any? (turtles-on patch-at -1 2) with [color = green] = false and reachable? and ([elevation] of patch-at 0 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at 2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at 0 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 -1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 0 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 1 != [elevation] of patch-here - 1) and ([elevation] of patch-at -2 2 != [elevation] of patch-here - 1) and ([elevation] of patch-at -1 2 = [elevation] of patch-here - 1)) [ ask patch-here [set pcolor yellow] setxy (xcor - 1) (ycor + 2) form-chains ][ if (verbose?) [ type "Vacancy " type who type " produced a chain of length " print cl ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ;; Although the turtles at the head of vacancy chains are green, showing a green patch looks nicer. ask patch-here [set pcolor green] end ;; This procedure checks that a position in the 24-neighborhood is not forbidden by a wall. to check-reachability set reachable? false foreach sort neighbors [ if ([pcolor] of ? != red and any? turtles-on ? = false) [ hatch 1 [ setxy [pxcor] of ? [pycor] of ? set color blue set hidden? true repeat 20 [ set heading random 360 if ([pcolor] of patch-ahead 1 != red and member? (patch-ahead 1) ([patches in-radius 3] of myself)) [ setxy ([pxcor] of patch-ahead 1) ([pycor] of patch-ahead 1) if (xcor = x-target and ycor = y-target) [ set reachable? true stop ] ] ] die ] ] ] end
There is only one version of this model, created about 12 years ago by Guido Fioretti.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Vacancy Chains.png | preview | Preview for 'Vacancy Chains' | about 12 years ago, by Guido Fioretti | Download |
This model does not have any ancestors.
This model does not have any descendants.