Documentation
Documentation - CS111 Review
| Back | Index | Next |
|---|---|---|
| Input/Output | Index | Debugging |
This is my main overview for the H.E.I.S.T. EXE game.
You can play the game here:
You can view documentation of our lessons here:
Class Overview
Here is a breakdown of how each object fits into the engine's class hierarchy:
| Game Object | Class | Role |
|---|---|---|
| Player | Player extends Character |
Player-controlled character |
| Guard | Guard extends Character |
"Enemy" NPC with reaction logic |
| Barrier | Barrier extends GameObject |
Collision boundaries |
CS111 Requirements
Click any section to expand and learn more.
Inheritance `GameObject → Character → Player/Guard`
Writing Classes Custom subclasses like `Player` and `Guard`
Method Overriding Custom `update()`, `draw()`, `handleCollision()`
Constructor Chaining `super(data, gameEnv)` ensures engine initialization
Iteration `forEach` loops in update + cleanup
Conditionals Collision checks, AI decisions, state transitions
Nested Conditions NPC type → proximity → inventory (3 layers)
Numbers `x`, `y`, `velocity`, `score`
Strings Names, sprite paths, game states
Booleans `isPaused`, `isJumping`, `isVulnerable`
Arrays `gameObjects[]`, level arrays
JSON Objects NPC config + GameLevel setup
Math Ops `+=`, `*`, `Math.pow()`
String Ops Template literals for sprite paths
Boolean Expressions `&&`, `||`, `!`
Canvas Rendering `draw()` via `requestAnimationFrame`
Keyboard Events `keydown` / `keyup` for movement
GameEnv Config Object literal world configuration
Single Responsibility Each method handles one behavior
Data-Driven Design GameBuilder uses Object Literals
Instantiation Level config spawns all objects
Documentation Inline comments everywhere
Testing Objects validated before merge
SDLC Practices Kanban, feature branches, selective PRs