Tangrams
No preview image
Model was written in NetLogo 4.0alpha2
•
Viewed 206 times
•
Downloaded 17 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
VERSION
$Id: Tangrams.nlogo 37529 2008-01-03 20:38:02Z craig $
WHAT IS IT?
A template that can be used to create simple Disease-like HubNet activities with verbose comments.
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
globals [ available-roles ] breed [ patterns pattern ] breed [ students student ] students-own [ user-id step-size angle my-role ] to startup setup hubnet-set-client-interface "COMPUTER" [] hubnet-reset set available-roles ( list (list "square" 30 red "red square" ) (list "triangle" 30 blue "blue triangle") (list "triangle" 30 orange "orange triangle" ) (list "medium triangle" 30 pink "pink triangle") (list "triangle" 60 yellow "yellow triangle") (list "triangle" 60 green "green triangle" ) (list "rhombus" 30 violet "purple rhombus") ) end to setup cp cd clear-output ask students [ set step-size 1 hubnet-send user-id "step-size" step-size ] end to go every 0.1 [ if solved? [ user-message "you win!" stop ] listen-clients ] end to-report solved? report count patterns with [ matching-turtle-here? ] = count patterns end to-report matching-turtle-here? let ts other turtles in-radius 2 if count ts != 1 [ report false ] let other-guy one-of ts ifelse shape = "square" [ report shape = [shape] of other-guy and abs(heading mod 90 - [heading] of other-guy mod 90) <= 1 ] [ report shape = [shape] of other-guy and abs(heading - [heading] of other-guy) <= 1 ] end ;; ;; HubNet Procedures ;; to listen-clients while [ hubnet-message-waiting? ] [ hubnet-fetch-message ifelse hubnet-enter-message? [ create-new-student ] [ ifelse hubnet-exit-message? [ remove-student ] [ ask students with [user-id = hubnet-message-source] [ execute-command hubnet-message-tag ] ] ] ] end to create-new-student if length available-roles > 0 [ create-students 1 [ set user-id hubnet-message-source set step-size 1 set angle 45 send-info-to-clients let role one-of available-roles set shape item 0 role set size item 1 role set color item 2 role set my-role item 3 role hubnet-send user-id "You are the:" item 3 role set available-roles remove role available-roles ] ] end to remove-student ask students with [user-id = hubnet-message-source] [ set available-roles lput (list shape size color my-role) available-roles die ] end to execute-command [command] if command = "step-size" [ set step-size hubnet-message stop ] if command = "angle" [ set angle hubnet-message stop ] if command = "up" [ set ycor ycor + step-size send-info-to-clients stop ] if command = "down" [ set ycor ycor - step-size send-info-to-clients stop ] if command = "right" [ set xcor xcor + step-size send-info-to-clients stop ] if command = "left" [ set xcor xcor - step-size send-info-to-clients stop ] if command = "rotate right" [ rt angle send-info-to-clients stop ] if command = "rotate left" [ lt angle send-info-to-clients stop ] if command = "flip" [ if shape = "rhombus" [set shape "rhombus backwards"] if shape = "rhombus backwards" [set shape "rhombus" ] ] end to send-info-to-clients hubnet-send user-id "location" (word "(" pxcor "," pycor ")") hubnet-send user-id "heading" heading end to chicken cd no-display stamp-tile ["medium triangle" 30 270 16.2 21.3] stamp-tile ["triangle" 30 90 -21.4 25] stamp-tile ["square" 30 45 -18.9 18.8] stamp-tile ["triangle" 60 45 12.6 0] stamp-tile ["triangle" 60 135 -12.6 0] stamp-tile ["triangle" 30 90 -9 -12.3] stamp-tile ["rhombus" 30 135 6.3 -12.3] display end to polygon-1 cd no-display stamp-tile ["triangle" 30 225 5 -9.8] stamp-tile ["triangle" 60 135 -14 8.9] stamp-tile ["triangle" 60 315 11.2 9] stamp-tile ["medium triangle" 30 315 -1.1 -3.5] stamp-tile ["rhombus" 30 45 -13.7 2.7] stamp-tile ["triangle" 30 315 -20.1 15.2] stamp-tile ["square" 30 315 17.5 -9.8] display end to rectangle cd no-display stamp-tile ["triangle" 30 225 6.2 -4.6] stamp-tile ["triangle" 60 315 0 13.95] stamp-tile ["triangle" 60 135 -0.1 13.9] stamp-tile ["square" 30 45 6.2 -17.2] stamp-tile ["medium triangle" 30 315 -0.1 1.45] stamp-tile ["rhombus backwards" 30 45 -6.4 -11] stamp-tile ["triangle" 30 315 -6.3 -17.2] display end to stamp-tile [tile] create-patterns 1 [ set color gray set shape item 0 tile set size item 1 tile set heading item 2 tile set xcor item 3 tile set ycor item 4 tile ] end to import-puzzle [filename] cd no-display file-open filename while [ not file-at-end? ] [ stamp-tile file-read ] file-close display end to export-puzzle [filename] file-open filename ask turtles [ file-write (list shape size heading xcor ycor) ] file-close end to show-puzzle ask turtles [ print (list shape size heading xcor ycor) ] end
There are 2 versions of this model.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.