Skip to content

Roadmap

BrandonRobare edited this page Jun 2, 2026 · 1 revision

Roadmap

These are real follow-ups I would make if I revisited this code. The repo keeps the labs as submitted, so none of these are applied. They are here for honesty about where the code is rough.

Maze game

  • Several functions can fall off the end without returning a value. goodDirection, pickAdjacent, and checkMaze each return on the branches the program actually hits, but g++ warns that other paths reach the closing brace. Add explicit return values.
  • srand(time(nullptr)) is called inside Room::pick and Room::pickAdjacent. Seeding once at the start of main is the right place, and reseeding from the same second's clock value hurts randomness.
  • In Maze::move, the else guards only the cout, while return false runs every time because of the brace layout. Wrap the two statements so the wall message and the early return belong together.
  • The generator never checks that the cheese is reachable from the start, so a random board can seal the cheese off. Add a connectivity check, or switch to carving passages so every room stays reachable.
  • The display lists wall coordinates instead of drawing a grid. Render an ASCII board so the layout is readable while playing.
  • nextMove and createAdjacent call exit(0) on unexpected input. Returning a quit sentinel and letting main decide would be cleaner.

Collection class

  • addNumber and removeNumber release the old array with delete instead of delete[]. Use the array form to match new[].
  • removeNumber allocates size_ + 1 doubles when the result needs size_ - 1. Size the new array correctly.
  • check keeps scanning after it finds a match. Returning early would stop the loop sooner. Minor, since the collection holds no duplicates.

Shared

  • Add a few automated checks. The CI workflow proves both projects compile, but it does not run them. Feeding scripted input and comparing output would catch regressions.

Clone this wiki locally