Activities/Reflection

From Sugar Labs
Jump to navigation Jump to search

Reflection

Reflection is a symmetry game. The goal is to create a reflective symmetry.

Reflection-solution.png

How to play Reflection

Click on the dots to change the colors until you have a reflective symmetry across a line of reflection.

Did you know that dot colors come from your XO colors?
Did you know that you can share Reflection and play with up to three others?

The Toolbars

Reflection toolbar-1.png

from left to right
  1. the Activity toolbar Button (shown in the open position)
  2. the New-horizontal-game Button (start a new game to create a horizontal reflective symmetry)
  3. the New-vertical-game Button (start a new game to create a vertical reflective symmetry)
  4. the New-bilateral-game Button (start a new game to create a vertical reflective symmetry)
  5. an area for messages
  6. the Robot Button (the robot will help you make your pattern)
  7. the Stop Button

Programming challenges

  • Could you modify Reflections so that it supports rotational symmetry?
  • Could you modify Reflections so that it supports glide symmetry?

Where to get Reflection

The Reflection activity is available for download from the Sugar Activity Library: Reflection

The source code is available on the Sugar Labs Gitorious server.

The backstory

Reflections was written by Walter Bender and Reuben Caron as an example of how to migrate a simple Flash activity to Sugar.

Refexion.swf is part of a bundle of Flash games Reuben encountered at a deployment in Central America. The game is simply a grid of squares that change color when clicked (See the figure below).

Refexion.swf.png

The closest activity we could think of that had something similar (a grid of clickable elements) was Activities/Turtle in a Pond.

We created Reflection in a few short steps:

  1. made a clone of the Turtle in a Pond activity
  2. made a git repository for the new project
  3. changed the activity.info file to reflect the name of our new activity
  4. created the activity icon
  5. changed the name of TurtlePondActivity.py to ReflectionActivity.py
  6. changed the name of the Class defined in ReflectionActivity.py to class ReflectionActivity(activity.Activity)
  7. removed the buttons we didn't need
  8. edited game.py:
  • we made the dots cycle through four colors rather than just two when clicked
  • we removed the turtle and all code associated with moving it
  • we added a line of symmetry
  • we rewrote the rules for detecting end of game

All of this was done in less than two hours.

We then created an XO bundle, uploaded it to activities.sugarlabs.org and created this page in the wiki, about one hour of work.

For Version 2, we added saving game state to the Journal, added a few more game options, and collaborative play (by grabbing the collaboration code from Activities/Paths), an additional two hours of work.

For Version 3, we added a robot help function and better feedback for when you complete the pattern.