Skeeball Trivia
Engaging take on the game of skeeball that includes trivia questions.
Project Overview
This project was a four-player skee-ball game that incorporated a trivia system, built as part of a team project. At the start of each game, the screen prompts the user to select the number of players (1 to 4). Each player then chooses a trivia category from a set that includes Social Studies, Language Arts, Math, Computer Science, Nature & Wildlife, and Science.
The trivia questions were based on the Michigan K–12 educational standards for grades 6 through 8.
Role & Contributions
Although this was a collaborative effort, I was primarily responsible for the electrical and software systems, which included:
- Circuit design and prototyping
- Component selection and hardware integration
- Graphical user interface (GUI) design
- Programming the game logic, trivia system, and I/O handling






Software & Programming
This was my first major project using Python and my introduction to object-oriented programming (OOP). While my early code style had room for improvement, I’m proud of how the program came together and functioned reliably in real-time.
The game was built around a Raspberry Pi 4B, which served as the central controller. It managed:
- GPIO (general-purpose input/output) for hardware like sensors, buttons, and motors.
- The gpiozero library was used to simplify interaction with physical components such as buttons, limit switches, and LED indicators.
- GUI rendering using Pygame and Pygame-Menu
- Trivia logic and player state tracking
Some notable code snippets:
- Gameplay Logic (snippet from main.py)
- Trivia Player Class
- Category Database
Hardware & Electronics
Main components included:
- Raspberry Pi 4B
- IR Breakbeam Sensors (for scoring)
- Servo Motor (for ball return)
- Arcade Style Light Up Buttons
- 5V Power Supply (for powering the servo)
- Sound Bar
- Flat Screen TV



To save pins on the Raspberry Pi, the inputs to the buttons were read through an analog to digital converter.
Because each button was connected to a different voltage divider, the analog to digital converter would read a different voltage depending on which button was pushed.
Challenges & Lessons Learned
Coordinating timing between GPIO input and GUI updates. This project started with a Raspberry Pi 3B as the brain, instead of the Raspberry Pi 4B. With the GUI running, the sensors were much too slow to pick up the balls when the player scored.
Organizing code with classes and methods that made sense as the project grew
Translating user interactions into clean state changes
This project helped me gain real experience with hardware/software integration, event-driven programming, and user-centered design.
Remarks
This skee-ball trivia project was a fun and challenging introduction to Python programming and system design. It gave me hands-on experience in not only writing Python code and building circuits but also in working within a team to deliver a complete, interactive experience.