PacMath: Difference between revisions

 
(16 intermediate revisions by 2 users not shown)
Line 25: Line 25:
==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 40: 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
Line 52: Line 51:
**If the player eats a Power Pellet (4 per level) the ghosts freeze for a few seconds
**If the player eats a Power Pellet (4 per level) the ghosts freeze for a few seconds
**Player has to eat the Enemy with the correct answer
**Player has to eat the Enemy with the correct answer
**If the player eats the wrong answer they lose a life, and continue playing, the ghost is warped back to its spawn
**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 100 regular pellets they gain a life
**If the player eats 100 regular pellets they gain a life
***A life is an answer attempt, if you run out of lives the game ends
***A life is an answer attempt, if you run out of lives the game ends
**After the three ghosts have been eaten and answered correctly, a new 'level' (so to speak) begins
**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
**Random question generation
**Random question generation
**The answer has a programmable limit
**The answer has a programmable limit (12 by default)
**Current Types
**Current Types
***Multiplication tables
***Multiplication tables
Line 69: Line 69:
***Inequalities (given a number, find which ghost's answer is greater than or less than the number)
***Inequalities (given a number, find which ghost's answer is greater than or less than the number)
***Basic Algebra problems (solve for x)
***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
*Question sets
*Question sets
**Student picks question type at game start
**Question type randomly generated at game start
**Instructor will be able to see the rankings of a particular student?
*Future Features
*Ranking
**Instructor will be able to see the rankings of a particular student
**<s>Top 10 scores will be recorded and displayed while game is paused</s> - maybe one day it will
**Student or teacher will be able to choose question type
*Speed setting as well?
**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 88: 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 <s>while displaying Rankings</s>
**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 <s>while displaying Rankings</s>
**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>


Components:
*Question generation
*Question generation
*Mazes
*Mazes
Line 112: 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.  


Line 127: Line 130:
* [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu
* [[user:dxr4305|Dennis Rodriguez]], email: dxr4305 [at] rit.edu


==Bugs==
====Contribute====
 
To help contribute to PacMath, check out the code and contact
 
* [[user:classclownfish|Abbi Honeycutt]], email: amh7732 [at] rit.edu
* [[user:Michael_Kitson|Michael Kitson]], email: msk5293 [at] rit.edu
 
===Bugs/Todo===
*Game size is not the proper size for the XO (too small)
**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==
Line 148: Line 168:
* Week 10
* Week 10
** <s>Improve game speed</s> (5 hrs) - runs great on the XO!
** <s>Improve game speed</s> (5 hrs) - runs great on the XO!
** <s>Beautify game, intuitively redesign the UI</s> (5 hrs) - screenshots to come
** <s>Beautify game, intuitively redesign the UI</s> (5 hrs)
** Refine ghost movement (5 hrs) - deemed out of scope for current time frame
** Refine ghost movement (5 hrs) - deemed out of scope for current time frame
<br/>
<br/>
* Week 11
* Week 11
** Finishing touches (2 hrs)
** Finishing touches (2 hrs)
** Usability testing (2 hrs)
** <s>Usability testing</s> (2 hrs) - delayed until sized to XO
** Release evaluation (1 hr)
** <s>Release evaluation</s> (1 hr) - delayed until sized to XO
** Potential release (1 hr)
** <s>Potential release</s> (1 hr) - delayed until sized to XO
<br/>
<br/>
Division of Labor:
Division of Labor:
Line 240: 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/]