A 3-week project using Python to code a rhythm game, with the goal of a good user experience and algorithmic complexity.
Language: Python
Modules: PyAudio, Aubio, CMU 112 Graphics

Basic Game Mechanics

Start Screen:
The user slashes the screen to start, hinting to the slashing the user will perform in the game
The user can click "S" and "A" for further customization of the game, explained later

The Blocks:
The blocks are generated with each beat of the music. The user slices in the direction the block indicates, and toggles the frame to match the block's color with.
( "Z" = red and "X" = cyan)
( "Z" = red and "X" = cyan)
Circles are bombs, and they halve the user's score
Song Selection [S]

Difficulty Levels:
The user has to option to choose songs from 3 difficulty levels
The chosen song is highlighted for easy readability

Customization:
Users can input their own songs by dragging songs in the "Song" folder and choosing it by typing in the name
The game will then generate a game with the chosen song
Competitive Game Mode [A]

In Competitive Mode, you have the option to play against an AI that adjusts their playing style to the user's
As seen on the side, it starts making mistakes as the user does too
Full Explanation Video