This track is by approval only and spots are limited. Read this entire page before asking. If you’re on the fence, keep working on Pellet Pursuit — the custom track is harder, not easier.
Instead of completing Phases 2–4 of Pellet Pursuit, you build a different Java project of your own design. You still present at the in-class demo and you are graded on the same four categories as everyone else (engine implementations, AI/logic, game feel, demo). The rubric items translate — they don’t disappear.
This is the right choice if you have a clear idea, you find Pellet Pursuit genuinely uninteresting, and you’re confident you can build your own scaffold in the remaining class time. It is the wrong choice if you just want to skip the BST or the ghost AI.
You must have a working Phase 1 before you may apply:
Show this to the instructor before writing your proposal. If Phase 1 isn’t working, finish it first.
Every submission — Pellet Pursuit or custom — must demonstrate all four of these. Your proposal must name exactly where each one appears in your design.
| # | Structure | What it must do |
|---|---|---|
| 1 | 2D array | Store a grid of data that drives what is drawn or simulated (tile map, board, pixel canvas, dungeon layout, etc.) |
| 2 | Abstract class hierarchy | At least one abstract base class with three or more concrete subclasses that behave differently from each other |
| 3 | Recursive BST + file I/O | insert() and collectDescending() implemented recursively; scores (or equivalent) saved to a file and loaded back on startup |
| 4 | ArrayList with iteration and removal | A collection of live objects updated every frame; items removed without ConcurrentModificationException |
Proposals that say “I’ll use a HashMap instead of a BST” or “I don’t need a grid” will be rejected. These structures exist because the course assessed them — your project must too.
Fill in this template and hand it to the instructor. Keep it short — a few sentences per row is enough. Vague answers (“I’ll use a grid somewhere”) will be sent back for revision.
Project name:
One-sentence description:
2D array
Class/file it lives in:
What each cell represents:
How it drives what appears on screen:
Abstract hierarchy
Base class name:
Three subclass names and how each behaves differently:
Recursive BST + file I/O
What gets stored in the BST (score, item, character?):
Where insert() is called:
Where collectDescending() is used:
File name scores/data are saved to:
ArrayList with iteration and removal
What objects are in the list:
What triggers removal:
How you avoid ConcurrentModificationException:
Approved custom projects are graded on the same rubric as Pellet Pursuit. The four categories map like this:
| Rubric category | Pellet Pursuit | Custom project equivalent |
|---|---|---|
| Engine implementations (50 pts) | The six method groups | The equivalent implementations named in your proposal |
| AI/Logic (30 pts) | Three ghost personalities | Three subclass behaviors that are visibly distinct |
| Difficulty & feel (10 pts) | Maze design, bonus item | Something you tuned or designed that affects game feel |
| Demo (5 pts) | Run and explain one decision | Run and explain one decision |
Documentation and code-quality expectations are identical.