Star Battle Puzzle Game
For my final project in MIT’s Software Construction class, our team of three were tasked with implementing Star Battle as a networked client–server puzzle game written in TypeScript. The game challenges players to place exactly two stars in each row, column, and region of a 10×10 grid—ensuring no two stars are orthogonally or diagonally adjacent—all while guaranteeing a unique solution.
We implemented all core functionality from scratch: parsing the puzzle files with ParserLib, designing abstract data types, and building a graphical user interface served over the network. Throughout development, we leveraged robust software engineering practices—design specifications, abstraction functions, representation invariants, checkRep assertions, unit tests, and code reviews—to deliver a safe, maintainable, and reliable system.