Changes

Jump to navigation Jump to search
568 bytes added ,  12:12, 16 November 2010
Line 6: Line 6:     
==Introduction==
 
==Introduction==
PacMath is an educational game based off a well known 80's arcade game. Using the original game concept PacMath will add fourth grade level math to the fun and exciting arcade game in order to make learning fun.  The game will provide the student with different problems and in order to solve the problem correctly the student will have to eat the enemy with the correct answer.
+
PacMath is an educational math game based off the well-known 80's arcade game PacMan. In addition to the original game mechanics, PacMath will add fourth grade level math to this fun and exciting arcade game in order to make learning fun.  PacMath will provide the student with different type math problems and in order to solve the problem correctly the student will have to eat the ghost with the correct answer.
===Sketch Up===
+
 
 +
==Sketch Up==
    
[[Image:PacMath.jpg|200px|thumb|left|alt=startscreen|Version 1]]
 
[[Image:PacMath.jpg|200px|thumb|left|alt=startscreen|Version 1]]
Line 17: Line 18:  
[[Image:Pacman-mockup.jpg|frame|none|alt=eatscreen|Version 3]]
 
[[Image:Pacman-mockup.jpg|frame|none|alt=eatscreen|Version 3]]
   −
[[Image:Pacmath2.gif]]
+
[[Image:PacMath3.PNG]]
    
==Objective==
 
==Objective==
The objective of this project is to incorporate the teachings of fourth grade mathematics to students through PacMath, a fun, interactive, mathematical game based on the 1980's popular arcade game. One of our main objectives is making PacMath flexible where the teacher will be allowed to create its own group of questions and not be forced to use only a set group of questions. This would allow more flexibility in the learning plan for the teacher.
+
The objective of PacMath is to use the basic mechanics of the 80's arcade game PacMan to teach fourth grade math skills. Currently, PacMath randomly generates questions using the four basic arithmetic functions (add, subtract, multiply, divide), up through the 12 times tables. In the future, we hope to build in functionality that will allow teachers to generate their own custom questions which will allow them to tailor PacMath to their curriculum.
    
==Education==
 
==Education==
   −
[[Media: PacMath Lesson Plan.pdf]]
+
[[Media: PacMath_Lesson_Plan.doc]]
    
Current Standards to be addressed with in this project: <br>
 
Current Standards to be addressed with in this project: <br>
Line 31: Line 32:  
*4.N.2 - Represent, order, and compare large numbers (to at least 100,000) using various forms, including expanded notation, e.g., 853 = 8 x 100 + 5 x 10 + 3.  
 
*4.N.2 - Represent, order, and compare large numbers (to at least 100,000) using various forms, including expanded notation, e.g., 853 = 8 x 100 + 5 x 10 + 3.  
 
*4.N.8 - Select, use, and explain various meanings and models of multiplication and division of whole numbers. Understand and use the inverse relationship between the two operations.
 
*4.N.8 - Select, use, and explain various meanings and models of multiplication and division of whole numbers. Understand and use the inverse relationship between the two operations.
*4.N.9 - Select, use, and explain the commutative, associative, and identity properties of operations on whole numbers in problem situations, e.g., 37 x 46 = 46 x 37, (5 x 7) x 2 =      5 x (7 x 2).
   
*4.N.11 - Know multiplication facts through 12 x 12 and related division facts. Use these facts to solve related multiplication problems and compute related problems, e.g., 3 x 5 is related to 30 x 50, 300 x 5, and 30 x 500.  
 
*4.N.11 - Know multiplication facts through 12 x 12 and related division facts. Use these facts to solve related multiplication problems and compute related problems, e.g., 3 x 5 is related to 30 x 50, 300 x 5, and 30 x 500.  
 
*4.N.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently.  
 
*4.N.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently.  
 +
*4.N.13 - Divide up to a three-digit whole number with a single-digit divisor (with or without remainders) accurately and efficiently. Interpret any remainders
    
[http://www.doe.mass.edu/frameworks/math/2000/final.pdf Link to Mass. Department of Education]
 
[http://www.doe.mass.edu/frameworks/math/2000/final.pdf Link to Mass. Department of Education]
Line 39: Line 40:  
==Game Elements==
 
==Game Elements==
 
;Activity Icon
 
;Activity Icon
[[Image: Pacmath-icon.svg|frame|none|alt=startscreen|Version 1]]
+
[[Image: Pacmath-icon.svg|frame|none|alt=startscreen|Version 1]] [[Image: Pacmath-icon_copy.svg|frame|none|alt=startscreen|Version 2]]
[[Image: Pacmath-icon_copy.svg|frame|none|alt=startscreen|Version 2]]
      
==How It Works==
 
==How It Works==
   −
[[Media: PacMan_User_Manual.pdf]]
+
[[Media: PacMath_User_Manual.doc]]
    
*One Player
 
*One Player
*Board Setup like the Original Arcade Game (one Maze to start off)
+
*Board Setup like the Original Arcade Game
*If the player eats a Power Pellet (4 per level)
+
*Question Appears (3 per level)
**Question Appears (4 per level -> 1 per Power Pellet)
+
**If the player eats a Power Pellet (4 per level) the ghosts freeze for a few seconds
**After the four Power Pellets have been eaten and answered correctly, a new 'level' (so to speak) begins
+
**Player has to eat the Enemy with the correct answer
**Player has to eat the Enemy with the correct answer (answers will be displayed on the enemies throughout the entire 'level'
+
**If the player eats the wrong answer they lose a life, and continue playing, the ghost is warped back to its spawn point
**If the player eats the wrong answer they lose a token and return to the center of the maze and continue playing
+
**If the player eats 100 regular pellets they gain a life
**If the player eats 100 (may change) regular pellets they gain a token
+
***A life is an answer attempt, if you run out of lives the game ends
***A token is an attempt, if you run out of tokens the game ends
+
**After the three ghosts have been eaten and answered correctly, a new 'level' (so to speak) begins
 +
***At the start of each level, three questions are generated of random operation type (+, -, /, x)
 +
 
 
*Questions
 
*Questions
**Some default ones to start off with (come with the activity)
+
**Random question generation
**GUI/Prompt for the teacher to input their own questions, saves as an XML (the activity will load the file)
+
**The answer has a programmable limit (12 by default)
**The answer will have a digit limit (thinking 3 digits)
+
**Current Types
 +
***Multiplication tables
 +
***Division tables
 +
***Addition tables
 +
***Subtraction tables
 +
**Future Types
 +
***Order of operations
 +
***Inequalities (given a number, find which ghost's answer is greater than or less than the number)
 +
***Basic Algebra problems (solve for x)
 +
***Fractions
    
===Features===
 
===Features===
 
*PacMath
 
*PacMath
 
**User will control a yellow sprite
 
**User will control a yellow sprite
**User will attempt to touch numbered sprites based on mathematical questions
+
**User will attempt to "eat" numbered sprites based on mathematical questions
*Difficulty settings
+
*Question sets
**EASY - slower game speed / easy difficulty questions
+
**Question type randomly generated at game start
**NORMAL - average game speed / easy and average difficulty questions
+
*Future Features
**HARD - fast game speed / easy, average and hard difficulty questions
  −
**PRODUCT MADNESS - fast game speed / only multiplication tables from 1-12
  −
*Questions
  −
**Instructor will be able to alter the questions the students will have to answer
   
**Instructor will be able to see the rankings of a particular student
 
**Instructor will be able to see the rankings of a particular student
*Ranking
+
**Student or teacher will be able to choose question type
 
**Top 10 scores will be recorded and displayed while game is paused
 
**Top 10 scores will be recorded and displayed while game is paused
 +
**Adjustable speed (faster for more of a challenge)
    
===Controls===
 
===Controls===
User will be able to interact with the game through two input devices
+
User will be able to interact with the game through the keyboard
 
*Keyboard
 
*Keyboard
 
**UP-ARROW will move sprite up
 
**UP-ARROW will move sprite up
Line 82: Line 90:  
**RIGHT-ARROW will move sprite right
 
**RIGHT-ARROW will move sprite right
 
**LEFT-ARROW will move sprite left
 
**LEFT-ARROW will move sprite left
**P will pause and resume the game while displaying Rankings
+
**P will pause and resume the game
*Game-Pad
+
*Future Controls - GameBoy mode
 
**UP-ANGLE will move sprite up
 
**UP-ANGLE will move sprite up
 
**DOWN-ANGLE will move sprite down
 
**DOWN-ANGLE will move sprite down
 
**RIGHT-ANGLE will move sprite right
 
**RIGHT-ANGLE will move sprite right
 
**LEFT-ANGLE will move sprite left
 
**LEFT-ANGLE will move sprite left
**SQUARE will pause and resume the game while displaying Rankings
+
**SQUARE will pause and resume the game
   −
==Code Structure Plan==
+
==Developer Information==
   −
Update: 2/25/2010, as of this date we have our latest up to date code structure with comments and modules on the following website [http://people.rit.edu/yah3133/ http://people.rit.edu/yah3133/]
+
===Code Structure===
   −
We will be using a mix and match of two existing classic arcade games implemented in Python.
+
Update: 11/16/2010, Current documentation is located at [http://mikekitson.com/pacmath/ http://mikekitson.com/pacmath/]
The first one is from [http://www-inst.eecs.berkeley.edu/~cs188/fa07/projects/search/searchproject.html Berkeley.edu] and it is a very simple implementation. The second game comes from [http://pinproject.com/pacman/pacman.htm PyGames] and it is more complicated in its design and implementation. We will be using a bit of both to try to come up with an optimal one that would work at a good speed in the XO.
      +
Update: <s>2/25/2010, as of this date we have our latest up to date code structure with comments and modules on the following website [http://people.rit.edu/yah3133/ http://people.rit.edu/yah3133/]</s>
   −
*Questions (default question list provided)
+
Components:
*Maze (single maze to start)
+
*Question generation
 +
*Mazes
 
*Player
 
*Player
 
*Enemies
 
*Enemies
Line 106: Line 115:  
*Setup (for loading on the XO)
 
*Setup (for loading on the XO)
   −
==Development==
+
===Development===
 
The code for this project is located at the [http://git.sugarlabs.org/projects/pacmath Git.SugarLabs.org] repositories.  
 
The code for this project is located at the [http://git.sugarlabs.org/projects/pacmath Git.SugarLabs.org] repositories.  
   −
The current group of people working on the development are:  
+
The current development group includes:
 +
 
 +
* [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu
 +
* [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu
 +
 
 +
The former group of project members included:
 +
 
 
* [[user:Yah3133|Yasser Hernandez]], email: yah3133 [at] rit.edu
 
* [[user:Yah3133|Yasser Hernandez]], email: yah3133 [at] rit.edu
 
* [[user:Taylor2412|Taylor Plimpton]], email: tjp3947 [at] rit.edu
 
* [[user:Taylor2412|Taylor Plimpton]], email: tjp3947 [at] rit.edu
 
* [[user:arendon|Abel Rendon Jr]], email: axr9780 [at] rit.edu
 
* [[user:arendon|Abel Rendon Jr]], email: axr9780 [at] rit.edu
 
* [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu
 
* [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu
 +
 +
====Contribute====
 +
 +
To help contribute to PacMath, check out the code and contact
 +
 
* [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu
 
* [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu
 
* [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu
 
* [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu
   −
==Bugs==
+
===Bugs/Todo===
* Collision detection does not always work - look into other pygame modules for collision detection?
+
*Game size is not the proper size for the XO (too small)
* It seems that our PacMan sprite can only eat two ghosties and answer two questions, then the game just continues, collision detection doesn't work and a new question can never be answered
+
**Potential Fix: Increase block size from 25px to 33px
 +
***Grid stays 25x25, each point on the grid is 33x33
 +
***Right hand answer frame increases to 375px in width (from 275px)
 +
***Bottom question frame stays 75px in height
 +
*Support input via alternate controls while in ebook mode
 +
**Directional angles and square button to pause
 +
*Permanent Documentation solution is required
 +
**non-personal site
 +
**run epydoc nightly for up-to-date documentation
    
==Milestones - Fall 2010==
 
==Milestones - Fall 2010==
* By Week 7
+
* Week 7
** <s>Gain git access</s>
+
** <s>Gain git access</s> (.5 hrs)
** <s>Evaluate game direction and idea</s>
+
** <s>Evaluate game direction and idea</s> (2 hrs)
** <s>Determine whether to reuse or refuse the current PacMath code</s>
+
** <s>Determine whether to reuse or refuse the current PacMath code</s> (.5 hrs) - Reuse
 
<br/>
 
<br/>
* By Week 8
+
* Week 8
** Document game idea and play
+
** <s>Document game idea and play (2 hrs)</s> - see wiki
** Decide on feedback mechanism (Score, Lives, …)
+
** <s>Implement pause screen (2 hrs)</s>
** Refactor collision detection system
+
** <s>Decide on feedback mechanism (Score, Lives, …)</s> (1 hr) - Lives, as documented earlier
 +
** <s>Random question generation (2 hrs)</s>
 
<br/>
 
<br/>
* By Week 9
+
* Week 9
** Sugarize the activity
+
** <s>Sugarize the activity (5 hrs)</s> - VTE widget, temporary solution?
** Implement multiple level capability
+
** <s>Implement multiple level capability</s> (5 hrs)
** Refine ghost movement
+
** <s>Refactor collision detection system</s> (5 hrs)
 
<br/>
 
<br/>
* By Week 10
+
* Week 10
** Improve game speed
+
** <s>Improve game speed</s> (5 hrs) - runs great on the XO!
** Beautify game, intuitively redesign the UI
+
** <s>Beautify game, intuitively redesign the UI</s> (5 hrs)
 +
** Refine ghost movement (5 hrs) - deemed out of scope for current time frame
 
<br/>
 
<br/>
* By Week 11
+
* Week 11
** Finishing touches
+
** Finishing touches (2 hrs)
** Usability testing
+
** <s>Usability testing</s> (2 hrs) - delayed until sized to XO
** Release evaluation
+
** <s>Release evaluation</s> (1 hr) - delayed until sized to XO
** Potential release
+
** <s>Potential release</s> (1 hr) - delayed until sized to XO
 
<br/>
 
<br/>
 
Division of Labor:
 
Division of Labor:
Line 152: Line 182:  
** Ghost movement
 
** Ghost movement
 
** Implementation of feedback mechanism
 
** Implementation of feedback mechanism
 +
** Implement pause screen
 
<br/>
 
<br/>
 
*Abbi:
 
*Abbi:
 
** Sugarization
 
** Sugarization
 +
** New Images
 
** Map/Maze representation
 
** Map/Maze representation
 
<br>
 
<br>
Line 228: Line 260:     
== License ==
 
== License ==
 +
All of PacMath is licensed
 
http://i.creativecommons.org/l/by-sa/3.0/88x31.png
 
http://i.creativecommons.org/l/by-sa/3.0/88x31.png
 
<br/>
 
<br/>
 
[http://creativecommons.org/licenses/by-sa/3.0/us/ http://creativecommons.org/licenses/by-sa/3.0/us/]
 
[http://creativecommons.org/licenses/by-sa/3.0/us/ http://creativecommons.org/licenses/by-sa/3.0/us/]

Navigation menu