Building a Console Jeopardy Game — AP Computer Science Portfolio
Overview
For my AP Computer Science portfolio assignment, I built a fully interactive Jeopardy game that runs entirely in the console using Java. The project was designed to demonstrate mastery of all the coding concepts we covered throughout the year, and to showcase the capabilities of our classroom robot — a PC running Windows, with mechanics operated by an Arduino board via USB.
The robot used student-developed Java class files alongside several third-party Java libraries (RobotSpeech, RobotSound, and Robot). The goal was to write a larger, creative version of MyProgram that used all three robot classes and incorporated as many programming concepts as possible.
The Vision
My aim was to create a robot that would let users play Jeopardy and act as a game show host. I wanted the robot to:
Display the game board — showing categories and point values, updated live as the game progressed
Accept player input — letting users select a category and point value each round
Host the game — using the robot's speech capabilities to ask questions, announce scores, and interact with players
Track scores — calculating each player's total based on their answers and who responded
I chose Jeopardy because it's something my family and I watch together, especially with my grandmother. It's a great social activity that everyone finds fun, and I wanted to bring that experience to my community.
Note: The original project was a Java console application. I have recreated it entirely here as an interactive browser game using React/Next.js so you can play it live here!
Project Portfolio
How It Was Built (Original Java Version)
The code was written in Java and compiled using Eclipse. It ran on a PC attached to our classroom robot, with an Arduino board controlling the robot's physical mechanics over USB.
Key Programming Concepts Used
Although I incorporated all of the coding concepts covered up through the Integer and Double classes, some were more central than others:
Classes and Methods — I created objects for different roles (game board, players, and questions), keeping code organized and reusable
Interfaces — Used to plan and label class structures, enforcing consistent design across components
Print Statements & Keyboard Input — The Keyboard class handled all user input, while print statements rendered the game board and prompted players
Loops — Used extensively to repeat game rounds, update the board, and iterate over questions
Conditionals — Handled scoring logic, answer validation, and turn management
You can view the full list of coding concepts here.
The Board Class
One of the most important components was the Board Class, which managed the state of the game board — tracking which categories and point values had been selected and updating the display each round. It used a 2D array to store board state and printed a formatted view to the console each turn.
The full code (with detailed comments for readability) is available here.
What I Would Do Differently
Upon completing the project, we were asked how we could improve our work. If I were to continue developing this, I would:
Integrate the Gemini API — Instead of players self-reporting whether their answers were correct, Gemini could evaluate free-text answers automatically, making the game smoother and more accurate
Add game saving and loading — Allow players to pause and resume later, so a long game doesn't have to be finished in one sitting
Custom boards — Let users create and save their own Jeopardy boards, enabling personalized and reusable games for family nights or classroom use