;;; ;;; Schlieffen Plan Rail Logistics Model ;;; ;;; Spring 2013 ;;; ;;; Robert Allen - averyallen71@gmail.com ;;; Brian Coffey - btpcoffey@gmail.com ;;; Dante Montgomery - dante.e.montgomery@gmail.com ;;; Ashley Rawson - ashleyrawson@gmail.com ;;; Brian Stebar - stebar2@gmail.com ;; ;; initialize-nodes - global method ;; ;; Creates and initializes the train stations ;; TODO: Let's see if we can find a better way to do this... ;; to initialize-nodes create-nodes 1[ set color grey set radius 10 set size 15 set owner "contested" set name "-1" setxy (calculate-x 2.265) (calculate-y 48.9) set longitude 2.264 set latitude 48.9 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "1" setxy (calculate-x 2.267) (calculate-y 49.951) set longitude 2.267 set latitude 49.951 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "2" setxy (calculate-x 1.09) (calculate-y 50.01) set longitude 1.09 set latitude 50.01 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "3" setxy (calculate-x .8) (calculate-y 49.75) set longitude .8 set latitude 49.75 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "4" setxy (calculate-x 1) (calculate-y 49.52) set longitude 1 set latitude 49.52 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "5" setxy (calculate-x 2.84) (calculate-y 49.453) set longitude 2.84 set latitude 49.453 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "6" setxy (calculate-x 2.04) (calculate-y 49.456) set longitude 2.04 set latitude 49.456 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "7" setxy (calculate-x 1.65) (calculate-y 50.79) set longitude 1.65 set latitude 50.79 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "8" setxy (calculate-x 2.82) (calculate-y 49.04) set longitude 2.82 set latitude 49.04 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "9" setxy (calculate-x 3.38) (calculate-y 49.085) set longitude 3.38 set latitude 49.085 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "10" setxy (calculate-x 3.41) (calculate-y 48.55) set longitude 3.41 set latitude 48.55 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "11" setxy (calculate-x 2.56) (calculate-y 48.55) set longitude 2.65 set latitude 48.55 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "63" setxy (calculate-x .8) (calculate-y 48.27) set longitude .8 set latitude 48.27 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "12" setxy (calculate-x 3.08) (calculate-y 50.66) set longitude 3.08 set latitude 50.66 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "13" setxy (calculate-x 2.8) (calculate-y 50.34) set longitude 2.8 set latitude 50.34 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "14" setxy (calculate-x 3.23) (calculate-y 50.19) set longitude 3.23 set latitude 50.19 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "15" setxy (calculate-x 3) (calculate-y 51.245) set longitude 3 set latitude 51.245 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "16" setxy (calculate-x 3.8) (calculate-y 51.06) set longitude 3.8 set latitude 51.06 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "17" setxy (calculate-x 4.37) (calculate-y 50.85) set longitude 4.37 set latitude 50.85 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "18" setxy (calculate-x 4.49) (calculate-y 50.43) set longitude 4.49 set latitude 50.43 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "19" setxy (calculate-x 3.95) (calculate-y 50.35) set longitude 3.95 set latitude 50.35 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "20" setxy (calculate-x 3.75) (calculate-y 50.3) set longitude 3.75 set latitude 50.3 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "21" setxy (calculate-x 4) (calculate-y 49.27) set longitude 4 set latitude 49.27 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "22" setxy (calculate-x 3.95) (calculate-y 49.05) set longitude 3.95 set latitude 49.05 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "23" setxy (calculate-x 4.3) (calculate-y 48.98) set longitude 4.3 set latitude 48.98 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "24" setxy (calculate-x 4.1) (calculate-y 48.56) set longitude 4.1 set latitude 48.56 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "25" setxy (calculate-x 3.98) (calculate-y 48.33) set longitude 3.98 set latitude 48.33 ] create-nodes 1[ set color grey set radius 20 set size 15 set name "26" set owner "contested" setxy (calculate-x 3.2) (calculate-y 48.2) set longitude 3.2 set latitude 48.2 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "27" setxy (calculate-x 4.55) (calculate-y 47.46) set longitude 4.55 set latitude 47.46 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "28" setxy (calculate-x 4.5) (calculate-y 47.88) set longitude 4.55 set latitude 47.46 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "29" setxy (calculate-x 5.3) (calculate-y 47.88) set longitude 5.3 set latitude 47.88 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "30" setxy (calculate-x 5.14) (calculate-y 48.1) set longitude 5.41 set latitude 48.1 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "31" setxy (calculate-x 4.715) (calculate-y 48.19) set longitude 4.715 set latitude 48.19 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "32" setxy (calculate-x 4.95) (calculate-y 48.62) set longitude 4.95 set latitude 48.62 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "33" setxy (calculate-x 4.6) (calculate-y 48.72) set longitude 4.6 set latitude 48.72 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "34" setxy (calculate-x 5.2) (calculate-y 48.74) set longitude 5.2 set latitude 48.74 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "35" setxy (calculate-x 4.9) (calculate-y 49.1) set longitude 4.9 set latitude 49.1 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "36" setxy (calculate-x 5.37) (calculate-y 49.16) set longitude 5.37 set latitude 49.16 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "37" setxy (calculate-x 5.6) (calculate-y 48.74) set longitude 5.6 set latitude 48.74 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "38" setxy (calculate-x 5.87) (calculate-y 48.65) ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "39" setxy (calculate-x 6.16) (calculate-y 48.28) set longitude 6.16 set latitude 48.28 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "40" setxy (calculate-x 6.2) (calculate-y 47.62) set longitude 6.2 set latitude 47.62 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "41" setxy (calculate-x 6.95) (calculate-y 47.63) set longitude 6.95 set latitude 47.63 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "42" setxy (calculate-x 7.75) (calculate-y 47.58) set longitude 7.75 set latitude 47.58 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "43" setxy (calculate-x 7.9) (calculate-y 48.6) set longitude 7.9 set latitude 48.6 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "44" setxy (calculate-x 6.55) (calculate-y 48.56) set longitude 6.55 set latitude 48.56 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "45" setxy (calculate-x 7.05) (calculate-y 48.3) set longitude 7.05 set latitude 48.3 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "46" setxy (calculate-x 6.5) (calculate-y 48.15) set longitude 6.5 set latitude 48.15 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "47" setxy (calculate-x 5.72) (calculate-y 48.35) set longitude 5.72 set latitude 48.35 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "48" setxy (calculate-x 6.20) (calculate-y 48.67) set longitude 6.20 set latitude 48.67 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "49" setxy (calculate-x 6.20) (calculate-y 49.12) set longitude 6.2 set latitude 49.12 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "50" setxy (calculate-x 6.19) (calculate-y 49.37) set longitude 6.19 set latitude 49.37 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "51" setxy (calculate-x 6.17) (calculate-y 49.59) set longitude 6.17 set latitude 49.59 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "52" setxy (calculate-x 4.95) (calculate-y 49.68) set longitude 4.95 set latitude 49.68 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "53" setxy (calculate-x 3.56) (calculate-y 49.59) set longitude 3.65 set latitude 49.59 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "54" setxy (calculate-x 4.91) (calculate-y 50.46) set longitude 4.91 set latitude 50.46 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "55" setxy (calculate-x 5.69) (calculate-y 50.62) set longitude 5.59 set latitude 50.62 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "56" setxy (calculate-x 6.92) (calculate-y 50.93) set longitude 6.92 set latitude 50.93 set is-depot? true ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "57" setxy (calculate-x 7.57) (calculate-y 50.37) set longitude 7.57 set latitude 50.37 set is-depot? true ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "58" setxy (calculate-x 8.67) (calculate-y 50.13) set longitude 8.67 set latitude 50.13 set is-depot? true ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "59" setxy (calculate-x 8.29) (calculate-y 50.03) set longitude 8.29 set latitude 50.03 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "60" setxy (calculate-x 6.7) (calculate-y 49.76) set longitude 6.7 set latitude 49.76 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "contested" set name "61" setxy (calculate-x 7.06) (calculate-y 49.24) set longitude 7.06 set latitude 49.24 ] create-nodes 1[ set color grey set radius 20 set size 15 set owner "German" set name "62" setxy (calculate-x 8.46) (calculate-y 49.04) set longitude 8.46 set latitude 49.04 ] end ;; ;; initialize-railways - global method ;; ;; Creates the rail lines between the stations ;; TODO: Let's find a better way to do this... ;; to initialize-railways ask nodes with [name = "-1"] [ let temp nodes with [name = "6" or name = "5" or name = "8" or name = "11"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "1"] [ let temp nodes with [name = "2" or name = "3" or name = "4" or name = "5" or name = "7" or name = "14" or name = "13"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "5"] [ let temp nodes with [name = "6" or name = "21"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "8"] [ let temp nodes with [name = "9"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "9"] [ let temp nodes with [name = "10"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "10"] [ let temp nodes with [name = "11" ] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "12"] [ let temp nodes with [name = "13"or name = "14" or name = "17"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "13"] [ let temp nodes with [name = "14"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "15"] [ let temp nodes with [name = "16"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "16" or name = "19"] [ let temp nodes with [name = "17"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "17"] [ let temp nodes with [name = "18"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "18"] [ let temp nodes with [name = "19"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "19"] [ let temp nodes with [name = "20"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "20"] [ let temp nodes with [name = "14"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "21"] [ let temp nodes with [name = "22"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "9"] [ let temp nodes with [name = "22"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "22"] [ let temp nodes with [name = "23"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "23"] [ let temp nodes with [name = "24" or name = "35"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "24"] [ let temp nodes with [name = "25"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "11"] [ let temp nodes with [name = "26"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "10"] [ let temp nodes with [name = "25"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "26"] [ let temp nodes with [name = "27"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "30"] [ let temp nodes with [name = "28" or name = "29" or name = "32"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "31"] [ let temp nodes with [name = "24"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "32"] [ let temp nodes with [name = "33"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "33"] [ let temp nodes with [name = "34"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "35"] [ let temp nodes with [name = "36"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "36"] [ let temp nodes with [name = "37"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "37"] [ let temp nodes with [name = "38"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "18"] [ let temp nodes with [name = "54"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "54"] [ let temp nodes with [name = "55" or name = "52" or name = "51" or name = "17"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "55"] [ let temp nodes with [name = "56"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "56"] [ let temp nodes with [name = "57" or name = "60"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "57"] [ let temp nodes with [name = "58" or name = "60"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "60"] [ let temp nodes with [name = "51" or name = "49" or name = "61"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "58"] [ let temp nodes with [name = "59"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "61"] [ let temp nodes with [name = "59" or name = "43" or name = "62"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "51"] [ let temp nodes with [name = "50"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "50"] [ let temp nodes with [name = "49"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "49"] [ let temp nodes with [name = "36" or name = "52" or name = "48" or name = "61"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "48"] [ let temp nodes with [name = "44"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "44"] [ let temp nodes with [name = "45" or name = "43"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "45"] [ let temp nodes with [name = "46"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "46"] [ let temp nodes with [name = "41" or name = "39" or name = "27"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "63"] [ let temp nodes with [name = "-1"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "42"] [ let temp nodes with [name = "43"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "46"] [ let temp nodes with [name = "41"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "41"] [ let temp nodes with [name = "40"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "40"] [ let temp nodes with [name = "29"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "39"] [ let temp nodes with [name = "29" or name = "47" or name = "38"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "47"] [ let temp nodes with [name = "30" or name = "34"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "30"] [ let temp nodes with [name = "31"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "28"] [ let temp nodes with [name = "25"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "14"] [ let temp nodes with [name = "53"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "53"] [ let temp nodes with [name = "1" or name = "5"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "33"] [ let temp nodes with [name = "23"] create-railways-with temp ask links[set color orange] ] ask nodes with [name = "21"] [ let temp nodes with [name = "36" or name = "52" or name = "53"] create-railways-with temp ask links[set color orange] ] ask links[ set higher-queue[] set lower-queue[] ] end ;; ;; initialize-trains - global method ;; ;; Creates all the German trains, evenly split between three supply depots ;; to initialize-trains create-trains (round number-trains / 3)[ set speed 3 set size 15 let temp nodes with [name = "56"] set home-node one-of temp set location home-node set xcor [xcor] of location set ycor [ycor] of location ] create-trains (round number-trains / 3)[ set speed 3 set size 15 let temp nodes with [name = "57"] set home-node one-of temp set location home-node set xcor [xcor] of location set ycor [ycor] of location ] create-trains (round number-trains / 3)[ set speed 3 set size 15 let temp nodes with [name = "58"] set home-node one-of temp set location home-node set xcor [xcor] of location set ycor [ycor] of location ] ask trains[ set active? false set in-queue? false set path [] ] set depots nodes with [is-depot? = true] ;;set the queue on each depot to an empty list ask depots [set depot-queue []] end