Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

786 lines
21 KiB

  1. ;; lobo: Logo Bolo
  2. ;; (c) Ben Kurtovic, 2011-2012
  3. ;;
  4. ;; Logo Bolo is a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo.
  5. ;;
  6. __includes [
  7. "base.nls"
  8. "bullet.nls"
  9. "explosion.nls"
  10. "pillbox.nls"
  11. "player.nls"
  12. "tank.nls"
  13. ]
  14. extensions [
  15. sound
  16. table
  17. ]
  18. globals [
  19. last-sound-time
  20. last-tick-time
  21. max-fps
  22. mouse-was-down?
  23. sound-stopped?
  24. sounds
  25. ]
  26. patches-own [
  27. ground-type
  28. ground-friction
  29. ]
  30. ;; ===========================
  31. ;; Button-initiated procedures
  32. ;; ===========================
  33. to setup
  34. clear-all
  35. no-display
  36. setup-defaults
  37. make-sounds-table
  38. make-explosions-table
  39. load-map
  40. spawn-player 0 0 0
  41. ;spawn-tank 0 -6 0 90
  42. ;spawn-tank 1 6 0 270
  43. ;spawn-base 0 -7
  44. ;spawn-pillbox 6 6
  45. show-hud
  46. render
  47. end
  48. to go
  49. do-player-logic
  50. ask tanks [
  51. do-tank-logic
  52. ]
  53. ask pillboxes [
  54. do-pill-logic
  55. ]
  56. ask bases [
  57. do-base-logic
  58. ]
  59. ask bullets [
  60. do-bullet-logic
  61. ]
  62. ask explosions [
  63. keep-exploding
  64. ]
  65. show-crosshairs
  66. show-hud
  67. stop-old-sounds
  68. render
  69. keep-time
  70. end
  71. ;; ================
  72. ;; Other procedures
  73. ;; ================
  74. to startup
  75. setup
  76. end
  77. to debug [agent action msg]
  78. ; Comment this to turn off debugging info:
  79. print (word (round timer) ": " agent ": " action " (" msg ")")
  80. end
  81. to setup-defaults
  82. set-patch-size 20
  83. resize-world -17 17 -12 12
  84. set last-sound-time timer
  85. set last-tick-time timer
  86. set map-file "lobo-default-map.png"
  87. set max-fps 30
  88. set mouse-was-down? false
  89. set sound-stopped? true
  90. set player-death-time timer
  91. set player-deaths 0
  92. set player-has-target? false
  93. set player-kills 0
  94. set player-target-xcor 0
  95. set player-target-ycor 0
  96. end
  97. to make-sounds-table
  98. set sounds table:make
  99. table:put sounds "fire" "Hand Clap"
  100. table:put sounds "kill" "Electric Snare"
  101. table:put sounds "noammo" "Cowbell"
  102. table:put sounds "pickup" "Hi Bongo"
  103. table:put sounds "shot" "Acoustic Snare"
  104. table:put sounds "place" "Vibraslap"
  105. table:put sounds "nopill" "Cowbell"
  106. table:put sounds "spawn" "Open Hi Conga"
  107. end
  108. to load-map
  109. import-pcolors-rgb map-file
  110. ask patches [
  111. ifelse pcolor = [0 0 0] [
  112. set pcolor black
  113. set ground-type "road"
  114. set ground-friction 1.15
  115. ] [
  116. ifelse pcolor = [0 128 0] [
  117. set pcolor lime - 4
  118. set ground-type "forest"
  119. set ground-friction 0.5
  120. ] [
  121. ifelse pcolor = [0 255 0] [
  122. set pcolor lime - 2
  123. set ground-type "grass"
  124. set ground-friction 0.75
  125. ] [
  126. ifelse pcolor = [255 255 0] [
  127. set pcolor black
  128. set ground-type "road"
  129. set ground-friction 1.15
  130. spawn-base
  131. ] [
  132. ifelse pcolor = [255 0 0] [
  133. set pcolor lime - 4
  134. set ground-type "forest"
  135. set ground-friction 0.5
  136. spawn-pillbox
  137. ] [
  138. debug (word "(" pxcor ", " pycor ")") "PATCH-LOAD-FAILURE" (word "unknown color: " pcolor)
  139. set pcolor red
  140. ]
  141. ]
  142. ]
  143. ]
  144. ]
  145. ]
  146. end
  147. to show-crosshairs
  148. clear-drawing
  149. if mouse-inside? [
  150. ask patch mouse-xcor mouse-ycor [
  151. draw-border white 1
  152. ]
  153. ]
  154. if player-has-target? [
  155. ask patch player-target-xcor player-target-ycor [
  156. draw-border white 2
  157. ]
  158. ]
  159. end
  160. to draw-border [b-color b-thickness]
  161. sprout 1 [
  162. set color b-color
  163. set pen-size b-thickness
  164. set heading 0
  165. fd 0.5
  166. pd
  167. rt 90
  168. fd 0.5
  169. repeat 3 [
  170. rt 90
  171. fd 1
  172. ]
  173. rt 90
  174. fd 0.5
  175. die
  176. ]
  177. end
  178. to show-hud
  179. let player-armor 0
  180. let player-ammo 0
  181. let num-pills 0
  182. if player != nobody [
  183. set player-armor [armor] of player
  184. set player-ammo [ammunition] of player
  185. set num-pills [number-of-pills] of player
  186. ]
  187. ask patch (min-pxcor + 4) max-pycor [
  188. set plabel (word "Armor: " player-armor)
  189. ]
  190. ask patch (min-pxcor + 12) max-pycor [
  191. set plabel (word "Ammo: " player-ammo)
  192. ]
  193. ask patch (max-pxcor - 1) max-pycor [
  194. set plabel (word "Pillboxes: " num-pills)
  195. ]
  196. ask patch (max-pxcor - 1) (min-pycor + 2) [
  197. set plabel (word "Deaths: " player-deaths)
  198. ]
  199. ask patch (max-pxcor - 1) (min-pycor + 1) [
  200. set plabel (word "Kills: " player-kills)
  201. ]
  202. end
  203. to render
  204. display
  205. no-display
  206. end
  207. to keep-time
  208. let time-since-last-tick timer - last-tick-time
  209. let wait-time (1 / max-fps) - time-since-last-tick
  210. wait wait-time
  211. tick
  212. set last-tick-time timer
  213. end
  214. to stop-old-sounds
  215. ; NetLogo sometimes plays sounds for longer than we want
  216. ; i.e., it doesn't know how to properly stop long sounds:
  217. let time-since-last-sound timer - last-sound-time
  218. if time-since-last-sound > 2 and not sound-stopped? [
  219. debug -1 "SOUND-STOP" (word round time-since-last-sound " seconds since last")
  220. sound:stop-music
  221. set sound-stopped? true
  222. ]
  223. end
  224. to play-sound [name]
  225. if enable-sound? [
  226. let dist 0
  227. if player != nobody [
  228. set dist distancexy ([xcor] of player) ([ycor] of player)
  229. ]
  230. let volume 100 - (dist * 4)
  231. if volume > 0 [
  232. sound:play-drum (table:get sounds name) volume
  233. set last-sound-time timer
  234. set sound-stopped? false
  235. ]
  236. ]
  237. end
  238. @#$#@#$#@
  239. GRAPHICS-WINDOW
  240. 254
  241. 10
  242. 964
  243. 541
  244. 17
  245. 12
  246. 20.0
  247. 1
  248. 14
  249. 1
  250. 1
  251. 1
  252. 0
  253. 0
  254. 0
  255. 1
  256. -17
  257. 17
  258. -12
  259. 12
  260. 0
  261. 0
  262. 1
  263. frames
  264. BUTTON
  265. 20
  266. 270
  267. 115
  268. 303
  269. New Game
  270. setup
  271. NIL
  272. 1
  273. T
  274. OBSERVER
  275. NIL
  276. R
  277. NIL
  278. NIL
  279. BUTTON
  280. 130
  281. 270
  282. 224
  283. 303
  284. Play Game
  285. go
  286. T
  287. 1
  288. T
  289. OBSERVER
  290. NIL
  291. G
  292. NIL
  293. NIL
  294. BUTTON
  295. 22
  296. 335
  297. 225
  298. 382
  299. Fire!
  300. player-fire
  301. NIL
  302. 1
  303. T
  304. OBSERVER
  305. NIL
  306. F
  307. NIL
  308. NIL
  309. SWITCH
  310. 50
  311. 97
  312. 186
  313. 130
  314. enable-sound?
  315. enable-sound?
  316. 0
  317. 1
  318. -1000
  319. BUTTON
  320. 23
  321. 435
  322. 226
  323. 468
  324. Cancel Order
  325. player-cancel-order
  326. NIL
  327. 1
  328. T
  329. OBSERVER
  330. NIL
  331. C
  332. NIL
  333. NIL
  334. TEXTBOX
  335. 16
  336. 14
  337. 303
  338. 53
  339. LoBo: Logo Bolo
  340. 28
  341. 0.0
  342. 1
  343. TEXTBOX
  344. 41
  345. 53
  346. 304
  347. 87
  348. a game by Ben Kurtovic
  349. 14
  350. 0.0
  351. 1
  352. TEXTBOX
  353. 19
  354. 75
  355. 241
  356. 93
  357. ---------------------------------
  358. 11
  359. 0.0
  360. 1
  361. TEXTBOX
  362. 22
  363. 312
  364. 263
  365. 340
  366. ---------------------------------
  367. 11
  368. 0.0
  369. 1
  370. BUTTON
  371. 23
  372. 392
  373. 226
  374. 425
  375. Place Pill
  376. player-place-pill
  377. NIL
  378. 1
  379. T
  380. OBSERVER
  381. NIL
  382. P
  383. NIL
  384. NIL
  385. SLIDER
  386. 26
  387. 204
  388. 118
  389. 237
  390. allies
  391. allies
  392. 0
  393. 6
  394. 1
  395. 1
  396. 1
  397. NIL
  398. HORIZONTAL
  399. SLIDER
  400. 126
  401. 204
  402. 218
  403. 237
  404. enemies
  405. enemies
  406. 0
  407. 6
  408. 2
  409. 1
  410. 1
  411. NIL
  412. HORIZONTAL
  413. INPUTBOX
  414. 23
  415. 137
  416. 219
  417. 197
  418. map-file
  419. lobo-default-map.png
  420. 1
  421. 0
  422. String
  423. TEXTBOX
  424. 22
  425. 246
  426. 257
  427. 264
  428. ---------------------------------
  429. 11
  430. 0.0
  431. 1
  432. @#$#@#$#@
  433. LOBO
  434. ----
  435. Lobo is Logo Bolo: a re-envisioning of the classic tank game by Stuart Cheshire in NetLogo. Below you will find a short tutorial on how to play, some known bugs and limitations, and credits.
  436. TUTORIAL
  437. -------
  438. ...
  439. BUGS / LIMITATIONS
  440. ------------------
  441. In the original Bolo, the map takes up many screen widths and is scrollable with the tank at the center. "follow" by itself wouldn't work, because NetLogo does not allow objects off-screen. I spent a while trying to figure this out, at one point essentially rewriting the rendering engine and using a table of "actual" patch coordinates that was translated into "virtual" patch coordinates each frame Ð not only was this very slow, but it was very overcomplicated and I wasn't able to do everything I had wanted. Instead, the map was made one screen size.
  442. In the original Bolo, patches are not merely colors - they have patterns on them (grass has little green lines, forests are spotted, roads have white stripes). This was not possible in NetLogo because patches can only have a single color.
  443. Time was also a limiting factor: I had planned a lot of additional features found in the original Bolo, like a nicer GUI for showing armor and ammunition, water as a ground-type (which drowns your tank). These were skipped so more work could be spent on general polishing and testing.
  444. CREDITS / MISC
  445. -------
  446. * Stuart Cheshire for the original Bolo game. Some graphics used in this project (tanks, pillboxes, and bases) were heavily based on old sprites taken from Bolo.
  447. * My dad for introducing me to Bolo many years ago, and for helping me simplify the original Bolo game into something possible with NetLogo.
  448. * Josh Hofing for advice on implementing certain features and emotional support.
  449. This project is available on GitHub at https://github.com/earwig/lobo. I used it for syncing code between my netbook and my desktop when working on the project away from home.
  450. Ñ Ben Kurtovic
  451. @#$#@#$#@
  452. default
  453. true
  454. 0
  455. Polygon -7500403 true true 150 5 40 250 150 205 260 250
  456. base
  457. false
  458. 0
  459. Rectangle -1184463 true false 60 240 120 255
  460. Rectangle -1184463 true false 120 225 180 240
  461. Rectangle -1184463 true false 180 240 240 255
  462. Polygon -1184463 true false 45 240 30 240 30 270 60 270 60 255 45 255
  463. Polygon -7500403 true true 195 210 195 225 225 225 225 195 210 195 210 210
  464. Polygon -1184463 true false 60 45 60 30 30 30 30 60 45 60 45 45
  465. Polygon -1184463 true false 240 255 240 270 270 270 270 240 255 240 255 255
  466. Rectangle -1184463 true false 45 60 60 120
  467. Rectangle -1184463 true false 180 45 240 60
  468. Rectangle -1184463 true false 240 180 255 240
  469. Rectangle -1184463 true false 60 120 75 180
  470. Rectangle -1184463 true false 120 60 180 75
  471. Rectangle -1184463 true false 225 120 240 180
  472. Rectangle -1184463 true false 45 180 60 240
  473. Rectangle -1184463 true false 60 45 120 60
  474. Rectangle -1184463 true false 240 60 255 120
  475. Rectangle -1184463 true false 135 135 165 165
  476. Rectangle -1184463 true false 165 120 180 135
  477. Rectangle -1184463 true false 120 120 135 135
  478. Rectangle -1184463 true false 120 165 135 180
  479. Rectangle -1184463 true false 165 165 180 180
  480. Rectangle -7500403 true true 195 105 210 195
  481. Polygon -1184463 true false 255 60 270 60 270 30 240 30 240 45 255 45
  482. Rectangle -7500403 true true 105 90 195 105
  483. Rectangle -7500403 true true 90 105 105 195
  484. Rectangle -7500403 true true 105 195 195 210
  485. Polygon -7500403 true true 210 105 225 105 225 75 195 75 195 90 210 90
  486. Polygon -7500403 true true 105 90 105 75 75 75 75 105 90 105 90 90
  487. Polygon -7500403 true true 90 195 75 195 75 225 105 225 105 210 90 210
  488. bullet
  489. true
  490. 5
  491. Rectangle -16777216 true false 135 30 165 90
  492. Rectangle -1 true false 135 90 165 150
  493. Rectangle -1 true false 135 150 165 210
  494. Polygon -16777216 true false 135 30 150 0 165 30 135 30
  495. Rectangle -2674135 true false 135 210 165 270
  496. Rectangle -16777216 true false 120 270 180 300
  497. Polygon -7500403 true false 195 210 165 150 165 210 195 210
  498. Rectangle -7500403 true false 165 210 195 268
  499. Rectangle -7500403 true false 105 210 135 268
  500. Polygon -7500403 true false 105 210 135 150 135 210 105 210
  501. explosion-large
  502. false
  503. 0
  504. Circle -6459832 true false 2 2 297
  505. Circle -2674135 true false 30 30 240
  506. Circle -955883 true false 60 60 180
  507. Circle -1184463 true false 90 90 120
  508. explosion-med
  509. false
  510. 0
  511. Circle -2674135 true false 0 0 300
  512. Circle -955883 true false 45 45 210
  513. Circle -1184463 true false 90 90 120
  514. explosion-small
  515. false
  516. 0
  517. Circle -2674135 true false 2 2 295
  518. Circle -955883 true false 75 75 148
  519. pillbox-alive-1
  520. false
  521. 1
  522. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  523. Rectangle -2674135 true true 225 135 300 165
  524. Rectangle -2674135 true true 135 0 165 75
  525. Rectangle -2674135 true true 0 135 75 165
  526. Rectangle -2674135 true true 135 225 165 300
  527. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  528. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  529. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  530. Circle -7500403 true false 47 42 210
  531. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  532. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  533. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  534. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  535. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  536. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  537. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  538. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  539. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  540. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  541. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  542. Polygon -16777216 true false 75 90 120 60 195 60 227 123 232 177 202 178 198 105 156 74 84 99 57 133 73 83
  543. Polygon -16777216 true false 77 147 124 213 176 210 222 179 167 171 137 191 105 141 67 117
  544. Polygon -16777216 true false 76 196 135 244 191 237 226 206 174 209 110 220 82 179 74 198
  545. Polygon -16777216 true false 101 67 154 52 175 134 135 94 92 95
  546. Polygon -16777216 true false 79 168 170 162 172 139 135 151 72 153
  547. Polygon -16777216 true false 207 80 249 119 166 172 160 128 208 83
  548. pillbox-alive-2
  549. false
  550. 1
  551. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  552. Rectangle -2674135 true true 225 135 300 165
  553. Rectangle -2674135 true true 135 0 165 75
  554. Rectangle -2674135 true true 0 135 75 165
  555. Rectangle -2674135 true true 135 225 165 300
  556. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  557. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  558. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  559. Circle -7500403 true false 47 42 210
  560. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  561. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  562. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  563. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  564. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  565. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  566. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  567. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  568. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  569. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  570. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  571. Polygon -16777216 true false 75 90 120 60 195 60 227 123 232 177 202 178 198 105 156 74 84 99 57 133 73 83
  572. Polygon -16777216 true false 77 147 124 213 176 210 222 179 167 171 137 191 105 141 67 117
  573. Polygon -16777216 true false 76 196 135 244 191 237 226 206 174 209 110 220 82 179 74 198
  574. pillbox-alive-3
  575. false
  576. 1
  577. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  578. Rectangle -2674135 true true 225 135 300 165
  579. Rectangle -2674135 true true 135 0 165 75
  580. Rectangle -2674135 true true 0 135 75 165
  581. Rectangle -2674135 true true 135 225 165 300
  582. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  583. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  584. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  585. Circle -7500403 true false 47 42 210
  586. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  587. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  588. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  589. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  590. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  591. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  592. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  593. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  594. Polygon -16777216 true false 152 224 182 234 212 216 230 196 211 202 191 218 187 206 160 223
  595. Polygon -16777216 true false 86 78 118 58 154 60 169 52 146 71 126 68 97 87 71 93 86 78
  596. Polygon -16777216 true false 218 107 248 139 245 184 230 192 224 154 225 126 214 109
  597. pillbox-alive-4
  598. false
  599. 1
  600. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  601. Rectangle -2674135 true true 225 135 300 165
  602. Rectangle -2674135 true true 135 0 165 75
  603. Rectangle -2674135 true true 0 135 75 165
  604. Rectangle -2674135 true true 135 225 165 300
  605. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  606. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  607. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  608. Circle -7500403 true false 47 42 210
  609. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  610. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  611. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  612. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  613. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  614. Polygon -16777216 true false 221 118 236 158 231 191 243 157
  615. Polygon -16777216 true false 105 120 135 90 150 120 123 146 110 181 97 157 112 105
  616. Polygon -16777216 true false 116 97 80 101 73 121 61 127 64 152 62 196 81 194 75 154 85 125 95 100
  617. pillbox-alive-5
  618. false
  619. 1
  620. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  621. Rectangle -2674135 true true 225 135 300 165
  622. Rectangle -2674135 true true 135 0 165 75
  623. Rectangle -2674135 true true 0 135 75 165
  624. Rectangle -2674135 true true 135 225 165 300
  625. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  626. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  627. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  628. Circle -7500403 true false 45 45 210
  629. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  630. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  631. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  632. Polygon -16777216 true false 116 185 101 216 116 235 127 214
  633. Polygon -16777216 true false 154 67 188 61 218 99 192 86 178 144 179 86 158 66
  634. pillbox-alive-6
  635. false
  636. 1
  637. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  638. Rectangle -2674135 true true 225 135 300 165
  639. Rectangle -2674135 true true 135 0 165 75
  640. Rectangle -2674135 true true 0 135 75 165
  641. Rectangle -2674135 true true 135 225 165 300
  642. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  643. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  644. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  645. Circle -7500403 true false 45 45 210
  646. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  647. Polygon -16777216 true false 203 122 218 185 193 205 150 235 138 219 149 221 176 201 203 188 183 173 200 157 187 128 198 109
  648. Polygon -16777216 true false 116 183 126 216 143 210 129 207 123 182
  649. pillbox-alive-7
  650. false
  651. 1
  652. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  653. Rectangle -2674135 true true 225 135 300 165
  654. Rectangle -2674135 true true 135 0 165 75
  655. Rectangle -2674135 true true 0 135 75 165
  656. Rectangle -2674135 true true 135 225 165 300
  657. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  658. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  659. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  660. Circle -7500403 true false 45 45 210
  661. Polygon -16777216 true false 117 90 87 136 100 198 102 149 111 121 145 95 129 78 122 95
  662. pillbox-alive-8
  663. false
  664. 1
  665. Polygon -2674135 true true 270 240 270 270 240 270 180 210 210 180 270 240
  666. Rectangle -2674135 true true 225 135 300 165
  667. Rectangle -2674135 true true 135 0 165 75
  668. Rectangle -2674135 true true 0 135 75 165
  669. Rectangle -2674135 true true 135 225 165 300
  670. Polygon -2674135 true true 240 30 270 30 270 60 210 120 180 90 240 30
  671. Polygon -2674135 true true 30 60 30 30 60 30 120 90 90 120 30 60
  672. Polygon -2674135 true true 60 270 30 270 30 240 90 180 120 210 60 270
  673. Circle -7500403 true false 45 45 210
  674. pillbox-dead
  675. false
  676. 1
  677. Polygon -7500403 true false 240 30 270 30 270 60 240 90 210 60 240 30
  678. Rectangle -7500403 true false 135 0 165 45
  679. Rectangle -7500403 true false 0 135 45 165
  680. Rectangle -7500403 true false 135 255 165 300
  681. Rectangle -7500403 true false 255 135 300 165
  682. Polygon -7500403 true false 30 60 30 30 60 30 90 60 60 90 30 60
  683. Polygon -7500403 true false 60 270 30 270 30 240 60 210 90 240 60 270
  684. Polygon -7500403 true false 270 240 270 270 240 270 210 240 240 210 270 240
  685. Polygon -2674135 true true 195 165 210 180 210 210 180 210 165 195
  686. Polygon -2674135 true true 165 105 180 90 210 90 210 120 195 135
  687. Polygon -2674135 true true 105 135 90 120 90 90 120 90 135 105
  688. Polygon -2674135 true true 135 195 120 210 90 210 90 180 105 165
  689. tank
  690. true
  691. 1
  692. Rectangle -7500403 true false 78 85 116 103
  693. Polygon -7500403 true false 105 270 210 271 210 105 180 105 180 135 120 135 120 105 90 105 89 270
  694. Polygon -2674135 true true 120 105 90 105 90 180 120 180 120 195 180 195 180 180 210 180 210 105 180 105 165 105 165 135 135 135 135 105 120 105
  695. Polygon -1 true false 135 15 135 150 165 150 165 15
  696. Polygon -1 true false 67 105 67 255 97 255 97 105
  697. Polygon -1 true false 202 105 202 255 232 255 232 105
  698. Rectangle -7500403 true false 184 85 222 103
  699. @#$#@#$#@
  700. NetLogo 4.1.3
  701. @#$#@#$#@
  702. @#$#@#$#@
  703. @#$#@#$#@
  704. @#$#@#$#@
  705. @#$#@#$#@
  706. default
  707. 0.0
  708. -0.2 0 1.0 0.0
  709. 0.0 1 1.0 0.0
  710. 0.2 0 1.0 0.0
  711. link direction
  712. true
  713. 0
  714. Line -7500403 true 150 150 90 180
  715. Line -7500403 true 150 150 210 180
  716. @#$#@#$#@
  717. 0
  718. @#$#@#$#@