Developers: Jaecuber Date: [April, 2026] Course: AP Computer Science A
Rouguelite
- [W, A, S, D] Move the player.
- [Spacebar] : Dash
- [No Keybind]: Pause the game.
- [No Keybind]: Quit.
This section shows how we aligned to the AP CSA standards.
- Encapsulation & Architecture: All classes use
privateinstance variables withpublicgetters and setters. We created a class hierarchy where[Subclass 1],[Subclass 2], and[Subclass 3]all extend our baseGameObjectclass. - Polymorphism: In our main
render()loop, we call the.move()and.draw()methods on a list ofGameObjectreferences, but the specific overridden methods in our subclasses execute at runtime. - ArrayList Traversal: We manage our game entities using an
ArrayList<GameObject>. We successfully implemented a backwards traversal loop in the[Insert Method Name]method to safely remove objects without causing anIndexOutOfBoundsException. - Standard Arrays & Sorting: We used a standard 1D array to manage
[Insert Mechanic, e.g., the top 5 high scores]. We used[Selection Sort / Insertion Sort]to order these scores before displaying them on the Game Over screen. - File I/O & String Parsing: Our game saves data persistently to
[filename.txt]. When the game loads, it reads the file using aScannerand uses String methods like[substring() / indexOf()]to parse the saved names and scores.
If you want to pull this repository and play the game yourself, follow these steps:
- Clone the repository:
git clone [Insert your GitHub Repo URL here] - Open the project in your IDE (VS Code, IntelliJ IDEA, or Eclipse).
- Run the Desktop Launcher: Navigate to
src/Launcher.javaand run themainmethod.