Skip to content
Sri
All work

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

A first question with the Audience Poll lifeline used, showing each answer's percentage

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

The play-or-walk decision at £32,000, with Walk Away and Continue buttons
Play or walk away.
The £1,000,000 win screen with confetti falling
The win screen's particle system.