Mental Rotation

Mental Rotation preview image

1 collaborator

Img_1085 Walaa Esawi (Author)

Tags

(This model has yet to be categorized with any tags)
Model group uhaifa-modeling-13 | Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.3 • Viewed 346 times • Downloaded 33 times • Run 0 times
Download the 'Mental Rotation' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

The model is considered as a kind of learning environment. It supports the learning procces of a phsycological ability of mental rotation. The model was build to give the pupils the chance to practice their abilities of shape recognition even after the shape has been rotated. The pupil will have fun, practise and learn by running and interacting with this model.

HOW IT WORKS

In order to start using the model (playing the game) the pupil needs to press on the button of "setup" then "go". The game will start. a shape will apear in the upper side of the screen. Three other smaller shapes will appear in the lower side of the screen. Only one of the three shapes is the same upper shape but after rotation.The pupil can press several times on the original shape and it will rotate, until he/she decides which one is the same shape. So he/she can press on the correct answer. and move automatically to the next question.

HOW TO USE IT

By pressing on the button of "setup" the model is ready for use. The pupil must decide the number of rounds he/she wants to play before starting the game. after that the pupil needs to press on "go" to get started. A plot of "round counter" shows the round the pupil is playing in, when the pupil starts in the second round it will show the number 2. Another plot called "floor (timer)" shows the whole time from the beginning to the end. The last plot is showing the time of seconds the pupil takes to answer each question 1-10. Each round will appear in different color so the pupil or the guide can compare between the rounds and how it is turning the game to easier by the time. At the end of each round a feedback appears in the command center box telling the pupil how many correct answers out of 10 he/she has got.

THINGS TO NOTICE

The pupil or the guide can notice the differences in the time (by seconds) the pupil spends in answering each question. Time differences may be noticed between the first round and the second.All the differences will be shown in the plot that shows the question from 1 until 10. And the time in seconds for each question. Each round has a different color.

THINGS TO TRY

Try to change the number of the rounds in the slider before starting the game. Try to answer the questions will less time in each round. And less wrong answers.

EXTENDING THE MODEL

The existing model contains only two-dimensional shapes. It can be extended to contain more questions. The shapes may be 3D shapes.Then it will be more complicated. The pupil may be asked to recognize the shape from the Top/front/side view.

NETLOGO FEATURES

Many special Netlogo Features helped and supported building the "game" in this successful way. In the Code tab: The command of "If mouse down" made it capable to be activated by the pupils. It gives the chance to interact with the game. to click on the different shapes. In order to make more shapes that are so similar I used "turtle shapes editor" in "tools". Something that can help anyone build a model with any shape in the mind. The command " Am I the answer" according to the place of the shape made it easy to set the answer as "true" or "false" according to the xcor and ycor (place) in the screen.From the turtles shapes: a happy face or a sad face for the answers.

CREDITS AND REFERENCES

http://modelingcommons.org/browse/onemodel/3804#modeltabsbrowsediscuss

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals
[
 
is-answered?  ;; this is a flag that indicates whether question was answered, if it does(true or false) set this flag to TRUE - this is how we know we want to continue to the next question
correct-answer-counter
questions-counter
max-questions
max-rounds
round-counter
]

;;; instead of TURTLES you can define your own agents:
breed [questions question]
breed [answers answer]
;;; this will be one of the answer agent attributes
answers-own[ am-i-the-answer? id]

to setup
  clear-all
  ;reset-timer
 
  fill-background
 
  set-current-plot-pen "round1"
  set is-answered? false
  set correct-answer-counter 0
  set questions-counter 1
  set max-questions 10
  set max-rounds number-of-rounds
  set round-counter 1
  ;;; setting first question - next question will be set in the go function
  create-questions 1 [set shape "shape1" set heading 0  setxy 0 6 set size size * 19 ]
  ;;; setting first answers
  create-answers 1 [set shape "shape1" set heading 0 setxy 10 -6 set heading 90 set size size * 15 set am-i-the-answer? true set id 1]
  create-answers 1 [set shape "shape2" set heading 0 setxy 0 -6 set size size * 15 set am-i-the-answer? false set id 2]
  create-answers 1 [set shape "shape4" set heading 0 setxy -10 -6 set size size * 15 set am-i-the-answer? false set id 3]
  reset-ticks
end 

to fill-background
  let chosen-color blue
  ask patches [set pcolor chosen-color + pxcor / max-pxcor]
  ask patches with [pxcor > min-pxcor and pxcor < max-pxcor and pycor < 1 and pycor > -12][set pcolor black]
  ask patches with [pxcor > -8 and pxcor < 8 and pycor > -2 and pycor < 15][set pcolor black]
end 

to go
  tick
  if ticks <= 1 [ reset-timer ]
  if mouse-down? and not is-answered?
  [
    ask questions[
    if mouse-ycor > ycor - size / 3  and mouse-ycor < ycor + size / 3 and mouse-xcor > xcor - size / 3 and mouse-xcor < xcor + size / 3
    [
      
     set heading heading + 12 
    ]
    ]
    
    if mouse-ycor > [ycor - size / 3] of one-of answers and mouse-ycor < [ycor + size / 3] of one-of answers
    [
      ask answers[
        if mouse-xcor > xcor - size / 3 and mouse-xcor < xcor + size / 3
        [
          
          ifelse  am-i-the-answer?
          [
            ;set size 10
            set shape "face happy"
            ;wait 
            set is-answered? true
            set correct-answer-counter correct-answer-counter + 1
            display
          ]
          
          [
            set shape "face sad"
            ;wait 1
            set is-answered? true
            display
          ]
          
          
          
        ]
      ]
      
    ]
    
    
  ]
  
  if is-answered?
  [
       plotxy questions-counter timer
       reset-timer
   set questions-counter questions-counter + 1 ;;; go to the next question
   wait 0.5

  ; reset-timer
   if questions-counter > max-questions ;;round ended
   [
     print (word "You got " correct-answer-counter " correct answers out of " max-questions "!") 
     ifelse round-counter < max-rounds
     [
       
     set round-counter round-counter + 1
     set-current-plot-pen (word "round" round-counter)
     set questions-counter 1
     set correct-answer-counter 0
     ]
     [stop]
     
     
     ] ;;; if no more questions print results and stop the main GO loop
   
   

   if questions-counter = 1
   [
     
       ask questions [set shape "shape1" set heading 0  ]
  ;;; setting first answers
  ask answers with [id = 1] [set shape "shape1"  set heading 90 set am-i-the-answer? true ]
  ask answers with [id = 2] [set shape "shape2" set heading 0  set am-i-the-answer? false ]
  ask answers with [id = 3] [set shape "shape4" set heading 0  set am-i-the-answer? false ]
     
     
   ]  
   if questions-counter = 2
   [
     ;;;; set next question 
     ask questions [set shape "shape5" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape6"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 90
       set shape "shape7"
       set am-i-the-answer? false
     ]
     ask answers with [id = 3] 
     [
       set heading 180
       set shape "shape5"
       set am-i-the-answer? true
     ]
   ]
   if questions-counter = 3
   [
     ;;;; set next question 
     ask questions [set shape "shape8" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape9"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 120
       set shape "shape8"
       set am-i-the-answer? true
     ]
     ask answers with [id = 3] 
     [
       set heading 90
       set shape "shape10"
       set am-i-the-answer? false
     ]
   ]
    if questions-counter = 4
   [
     ;;;; set next question 
     ask questions [set shape "shape11" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape12"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 120
       set shape "shape11"
       set am-i-the-answer? true
     ]
     ask answers with [id = 3] 
     [
       set heading 90
       set shape "shape13"
       set am-i-the-answer? false
     ]]
   if questions-counter = 5
   [
     ;;;; set next question 
     ask questions [set shape "shape14" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape15"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 90
       set shape "shape16"
       set am-i-the-answer? false
     ]
     ask answers with [id = 3] 
     [
       set heading 180
       set shape "shape14"
       set am-i-the-answer? true
     ]
   ]
    if questions-counter = 6
   [
      ;;;; set next question
       ask questions [set shape "shape17" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 90
       set shape "shape17"
       set am-i-the-answer? true
     ]
     ask answers with [id = 2] 
     [
       set heading 90
       set shape "shape18"
       set am-i-the-answer? false
     ]
     ask answers with [id = 3] 
     [
       set heading 180
       set shape "shape19"
       set am-i-the-answer? false]]
   
     if questions-counter = 7
   [
     ;;;; set next question 
     ask questions [set shape "shape20" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape21"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 45
       set shape "shape20"
       set am-i-the-answer? true
     ]
     ask answers with [id = 3] 
     [
       set heading 90
       set shape "shape22"
       set am-i-the-answer? false
     ]
   ]
     if questions-counter = 8
   [
     ;;;; set next question 
     ask questions [set shape "shape23" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape24"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 120
       set shape "shape23"
       set am-i-the-answer? true
     ]
     ask answers with [id = 3] 
     [
       set heading 90
       set shape "shape25"
       set am-i-the-answer? false
     ]]
       
         if questions-counter = 9
   [
      ;;;; set next question
       ask questions [set shape "shape26" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 90
       set shape "shape26"
       set am-i-the-answer? true
     ]
     ask answers with [id = 2] 
     [
       set heading 0
       set shape "shape27"
       set am-i-the-answer? false
     ]
     ask answers with [id = 3] 
     [
       set heading 180
       set shape "shape28"
       set am-i-the-answer? false]]
   
   if questions-counter = 10
   [
     ;;;; set next question 
     ask questions [set shape "shape29" set heading 0]
     ask answers with [id = 1] 
     [
       set heading 0
       set shape "shape30"
       set am-i-the-answer? false
     ]
     ask answers with [id = 2] 
     [
       set heading 90
       set shape "shape31"
       set am-i-the-answer? false
     ]
     ask answers with [id = 3] 
     [
       set heading 60
       set shape "shape29"
       set am-i-the-answer? true
     ]

   ]
   ;;;; set next answers
   ;;; for each and every answer set the "am-i-the-answer?" value to TRUE or FALSE
   set is-answered? false 
  ]
end 

There are 2 versions of this model.

Uploaded by When Description Download
Walaa Esawi almost 12 years ago Updated Model Download this version
Walaa Esawi about 12 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Mental Rotation.png preview Preview for 'Mental Rotation' about 12 years ago, by Walaa Esawi Download
Walaa's diary1.docx word היומן האישי- מהלך בניית המודל בנוסף לרפלקציה מסכמת almost 12 years ago, by Walaa Esawi Download
סיבוב מנטלי-פוסטר.docx word הפוסטר מציג את הרעיון של המודל almost 12 years ago, by Walaa Esawi Download

This model does not have any ancestors.

This model does not have any descendants.