# PacMath

 Status: Activedevelopment in progress (restarted) Group Members: Michael Kitson, Abbi Honeycutt Fourth grade level math game based on the classic arcade game PacMan

Last updated February 25, 2010

## 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.

Version 1
Version 2
Version 2
Version 3

## 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.

## Education

Current Standards to be addressed with in this project:
(As per standards of the Massachusetts Department of Education)

• 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.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.12 - Add and subtract (up to five-digit numbers) and multiply (up to three digits by two digits) accurately and efficiently.

Activity Icon
Version 1
Version 2

## How It Works

• One Player
• Board Setup like the Original Arcade Game (one Maze currently, more to be added)
• If the player eats a Power Pellet (4 per level)
• Question Appears (4 per level -> 1 per Power Pellet)
• 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 (answers will be displayed on the enemies throughout the entire 'level'
• If the player eats the wrong answer they lose a token and return to the center of the maze, lose a life, and continue playing
• If the player eats 100 (may change) regular pellets they gain a life
• A life is an answer attempt, if you run out of lives the game ends
• Questions
• Random question generation
• The answer will have a digit limit (thinking 3-5 digits)
• Types
• Multiplication tables
• Division tables
• Subtraction tables
• 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)

### Features

• PacMath
• User will control a yellow sprite
• User will attempt to touch numbered sprites based on mathematical questions
• Question sets
• Student picks question type at game start
• Instructor will be able to see the rankings of a particular student?
• Ranking
• Top 10 scores will be recorded and displayed while game is paused
• Speed setting as well?

### Controls

User will be able to interact with the game through two input devices

• Keyboard
• UP-ARROW will move sprite up
• DOWN-ARROW will move sprite down
• RIGHT-ARROW will move sprite right
• LEFT-ARROW will move sprite left
• P will pause and resume the game while displaying Rankings
• UP-ANGLE will move sprite up
• DOWN-ANGLE will move sprite down
• RIGHT-ANGLE will move sprite right
• LEFT-ANGLE will move sprite left
• SQUARE will pause and resume the game while displaying Rankings

## Code Structure Plan

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/

We will be using a mix and match of two existing classic arcade games implemented in Python. The first one is from Berkeley.edu and it is a very simple implementation. The second game comes from 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.

• Question generation
• Mazes
• Player
• Enemies
• Game (control)
• Activity (main)

## Development

The code for this project is located at the Git.SugarLabs.org repositories.

The current development group includes:

The former group of project members included:

## Bugs

• Collision detection does not always work - look into other pygame modules for collision detection?
• 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

## Milestones - Fall 2010

• Week 7
• Gain git access (.5 hrs)
• Evaluate game direction and idea (2 hrs)
• Determine whether to reuse or refuse the current PacMath code (.5 hrs) - Reuse

• Week 8
• Document game idea and play (2 hrs)
• Implement pause screen (2 hrs)
• Decide on feedback mechanism (Score, Lives, …) (1 hr)
• Random question generation

• Week 9
• Sugarize the activity (5 hrs)
• Implement multiple level capability (5 hrs)
• Refactor collision detection system (5 hrs)

• Week 10
• Improve game speed (5 hrs)
• Beautify game, intuitively redesign the UI (5 hrs)
• Refine ghost movement (5 hrs)

• Week 11
• Finishing touches (2 hrs)
• Usability testing (2 hrs)
• Release evaluation (1 hr)
• Potential release (1 hr)

Division of Labor:

• Mike:
• Ghost movement
• Implementation of feedback mechanism
• Implement pause screen

• Abbi:
• Sugarization
• Map/Maze representation

• Both:
• Game design and idea
• Collision Detection
• Game Speed
• UI redesign

## Milestones - Winter 2009

Weeks correspond to RIT Quarter Schedule

• Week 6 ( January 15th 2010 - January 22nd 2010 )
• Get git working on git.sugarlabs.org
• Finish adding details to the PacMath Wiki
• Make a Sketch-Up for the game
• E-mail Math4 Mailing List informing everyone about our project and ask for ideas and volunteers

• Week 7 ( January 22nd 2010 - January 29th 2010 )
• Get all the code sections defined well
• Split up code sections
• Start initial basic coding
• Test an initial simple blank screen

• Week 8 ( January 29th 2010 - February 5th 2010 )
• Test segments of PacMath
• Just Maze
• Just PacMath
• Just Enemies

• Week 9 ( February 5th 2010 - February 12th 2010 )
• Test the basic activity
• Put the pieces together
• User Group Test
• Pick a License for the project

• Week 10 ( February 12th 2010 - February 19th 2010 )
• Wrap Up

• Week 11 ( February 19th 2010 - February 26th 2010 )
• Final Push!
• Final presentation

## Community

Feedback from the community

### Gary (January 21, 2010)

```The PacMath sketches look great, can't wait to give it a play through :-)Regarding questions/game settings,
make sure you have a play of Walter's VisualMatch activity and see how the toolbar provides lots of flexibility to
the game challenge type. It would seem like a good approach to let the user choose the starting case (perhaps
via a teachers verbal guidance in class) and then have the general math difficulty level increase as they complete
level to level. It would be very desirable if you would perform the gettext internationalization (i18n) that is needed
to get this set up in Pootle for localization into other languages (i.e. generate POT file, set po directory in git repo,
make user:pootle a committer, file Trac bug with component = localization requesting Pootle hosting, etc.).
Cjl 07:01, 12 February 2010 (UTC)
```

### Walter Bender (February 11, 2010)

```I would recommend you look at how other pygame-based activities are
packaged. For example, Maze.
```

### Tomeu Vizoso (February 12, 2010)

```Also, Jim's book could help clarifying several concepts, though I
don't see anything specific to pygame/sugargame.
```

### Jim Simmons (February 12, 2010)

```There is a project in Gitorious that sounds like it might be of use to you:
http://git.sugarlabs.org/projects/sugargame
I haven't tried it myself, but the description sounds promising.
```