AI Assignment 1
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
(a general understanding of what the model is trying to show or explain)
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
Comments and Questions
globals [turn-path-cost step-path-cost] turtles-own [direction] ;; 1 follows right-hand wall, ;; -1 follows left-hand wall breed [dogs dog] breed [houses house] breed [clinics clinic] ; Hamton Court Maze Demo ; ; Draws a schematic map of the Hampton Court Maze ; setup maze at (0,0) to setup-row [row colour segments] foreach segments [ if pycor = row * maze-height and (pxcor >= maze-width * (item 0 ?)) and (pxcor <= maze-width * (item 1 ?)) [set pcolor colour] ] end to setup-col [col colour segments] foreach segments [ if pxcor = col * maze-width and (pycor >= maze-height * (item 0 ?)) and (pycor <= maze-height * (item 1 ?)) [set pcolor colour] ] end to create-dog create-turtles 1 [ ; move the turtle slowly to the entrance setxy (maze-width / 2) (- maze-height * 7) set size 1 ;; bigger turtles are easier to see set pen-size 2 ;; thicker lines are easier to see set color green ;;set shape "dog" pen-down set turn-path-cost 0 set step-path-cost 0 set heading 0 ; head north repeat maze-height + 1 [forward 1 wait 0.2 set turn-path-cost turn-path-cost + 1] ifelse random 2 = 0 [ set heading 90 set direction 1 set step-path-cost step-path-cost + 1] ;; follow right hand wall [ set heading 270 set direction -1 set step-path-cost step-path-cost + 1] ;; follow left hand wall forward 2 set turn-path-cost turn-path-cost + 2 clear-output output-write turn-path-cost ] end to setup-hampton-maze ca;; clear everything ask patches [ if (pxcor >= min-pxcor and pxcor <= max-pxcor and pycor >= min-pycor and pycor <= max-pycor) [set pcolor white] ;; make background full of white patches setup-row 5 grey[[-9 10]] setup-row 4 grey[[-8 -5] [-3 -1] [0 3] [5 9]] setup-row 3 grey[[-7 -4] [-2 2] [4 8]] setup-row 2 grey[[-6 -1] [1 4] [5 7]] setup-row 1 grey[[-3 3] [8 9]] setup-row 0 grey[[-8 -7] [9 10]] setup-row -1 grey[[-9 -8]] setup-row -2 grey[[-8 -7] [-3 0] [1 3]] setup-row -3 grey[[-4 -1] [2 4] [6 8]] setup-row -4 grey[[-7 -1] [1 9]] setup-row -5 grey[[-8 10]] setup-row -6 grey[[-9 0] [1 10]] setup-col 10 grey[[-6 5]] setup-col 9 grey[[-4 -1] [1 4]] setup-col 8 grey[[-3 1] [2 3]] setup-col 7 grey[[-2 2]] setup-col 6 grey[[-4 1]] setup-col 5 grey[[-3 2]] setup-col 4 grey[[-3 2] [3 5]] setup-col 3 grey[[-2 1] [2 4]] setup-col 1 grey[[-4 -2]] setup-col 0 grey[[-5 -2] [1 3]] setup-col -1 grey[[-4 -3] [4 5]] setup-col -3 grey[[-2 1] [2 4]] setup-col -4 grey[[-3 2] [3 5]] setup-col -5 grey[[-4 1]] setup-col -6 grey[[-3 2]] setup-col -7 grey[[-4 -3] [-2 0] [1 3]] setup-col -8 grey[[-5 -2] [0 4]] setup-col -9 grey[[-6 5]] ] create-turtles 1 [ ; move the turtle slowly to the entrance setxy (maze-width / 2) (- maze-height * 7) set size 2 ;; bigger turtles are easier to see set pen-size 2 ;; thicker lines are easier to see set color green set shape "dog" pen-down set turn-path-cost 0 set step-path-cost 0 set heading 0 ; head north repeat maze-height + 1 [forward 1 wait 0.2 set turn-path-cost turn-path-cost + 1] ifelse random 2 = 0 [ set heading 90 set direction 1 set step-path-cost step-path-cost + 1] ;; follow right hand wall [ set heading 270 set direction -1 set step-path-cost step-path-cost + 1] ;; follow left hand wall forward 2 set turn-path-cost turn-path-cost + 2 clear-output output-write turn-path-cost ] end to create-house create-turtles 2 [ set color red set shape "house" set size 5 setxy 6 50 ] end to create-clinic create-clinics 1 [ set color blue set shape "clinic" set size 8 setxy -1 -1 ] end to go ask turtles [ walk ] end to walk ;; turtle procedure if count neighbors4 with [pcolor = grey] = 4 [ user-message "Trapped!" stop ] if ycor > ( - 2 * maze-height) and ycor <= maze-height and xcor >= 0 and xcor <= maze-width [ user-message "Made it to the centre of the maze!" stop ] ;; turn right if necessary if not wall? (90 * direction) 1 and wall? (135 * direction) (sqrt 2) [ rt 90 * direction set step-path-cost step-path-cost + 1] ;; wall straight ahead: turn left if necessary (sometimes more than once) while [wall? 0 1] [ lt 90 * direction set step-path-cost step-path-cost + 1] ;; move forward fd 1 set turn-path-cost turn-path-cost + 1 clear-output output-print (word "turn direction path cost :" turn-path-cost " ") output-print (word "step path cost :" step-path-cost " ") end to-report wall? [angle dist] ;; note that angle may be positive or negative. if angle is ;; positive, the turtle looks right. if angle is negative, ;; the turtle looks left. report grey = [pcolor] of patch-right-and-ahead angle dist end
There is only one version of this model, created over 11 years ago by Jind Lee.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.