Who Wants to Be a Millionaire (ICS3U Final)
My Grade 11 CS final: a Who Wants to Be a Millionaire quiz game in Java Swing, with every screen drawn by hand.
Sole developer · 2026

Overview
"FINAL ANSWER?" is a quiz game modelled on Who Wants to Be a Millionaire, built as my final project for ICS3U. You climb a 16-step money ladder, use lifelines, and decide whether to keep playing or walk away with what you have.
It's a single-player desktop game in plain Java with no external libraries, 17 classes in all.
What I did
Solo project.
Built with
- Java
- Swing
- Java2D
Architecture
GameSession holds the game state: the current question, winnings, safe points, the timer, and which lifelines are used. GameScreenRenderer draws everything, and GameScreenPanel handles input and coordinates the two.
QuestionBank builds a deck of 16 questions of increasing difficulty and finds same-difficulty replacements for the Swap lifeline. QuestionParser reads the question CSV, including quoted values.
Every screen (main menu, mode selector, intro, money ladder, play-or-walk, game over, win screen) is a custom-painted Swing panel. Animations run on javax.swing.Timer.
The challenges
Input during animations
Once an answer is locked in, the game plays a reveal animation before showing the result. Lifelines could still be triggered during that window; the fix was to block them as soon as the reveal starts.
Keeping drawing code manageable
With no layout managers doing the work, the renderer was split out from the game logic so the drawing code and the rules could change independently.
Screenshots

