How grumpydude02/tetris works
This is a Pygame Tetris clone. The player starts in the application’s menu flow, chooses Classic, Practice, or Custom play, configures options, then plays through falling-piece movement, placement, line clearing, scoring, and increasing difficulty. Custom play also supports editing and saving board presets. The graph preserves these documented capabilities; some links among unsampled menu and game code are shown as unverified rather than asserted as observed calls.
Main entry points: Game.py Game session · GameMenus.py Mode menus · Main.py Application shell · Editor.py Level editor
Components 19
Application flow
- Application shell
Main.py - State model
GameStates.py - Runtime settings
Main.py - Sound playback
Main.py
Modes and editing
- Mode menus
GameMenus.py - Menu interaction
Primitives/Menu.py - Level editor
Editor.py - Preset files
Assets/Presets
Gameplay engine
- Game session
Primitives/Game.py - Piece movement
Tetrominos.py - Board blocks
Block.py
UI components
- Buttons
Tools/Buttons.py - Option carousel
Tools/Carousel.py - Option slider
Tools/Slider.py - Visual particles
Tools/Particles.py
Shared runtime
- Rules and constants
Globals.py - Game utilities
Tools/functions.py - Game timer
Tools/Timer.py
Other components
- Player
Connections 32
- Player → Application shell: starts
Readme.md - Application shell → Runtime settings: creates
Main.py - Application shell → Sound playback: creates
Main.py - Application shell → Level editor: creates
Main.py - Application shell → Mode menus: routes to
Main.py - Application shell → Game session: starts session
Main.py - Mode menus → Menu interaction: extends
GameMenus.py - Mode menus → Game session: configures modes
GameMenus.py - Player → Mode menus: chooses mode
Readme.md - Player → Level editor: edits levels
Readme.md - Level editor → Preset files: loads and saves
Editor.py - Menu interaction → Buttons: handles controls
Primitives/Menu.py - Mode menus → Buttons: creates
GameMenus.py - Mode menus → Option slider: creates
GameMenus.py - Mode menus → Option carousel: creates
GameMenus.py - Menu interaction → Visual particles: creates
Primitives/Menu.py - Game session → Piece movement: creates pieces
Primitives/Game.py - Game session → Game timer: uses
Primitives/Game.py - Game session → Visual particles: uses
Primitives/Game.py - Game session → Game utilities: uses
Primitives/Game.py - Game session → Rules and constants: reads rules
Primitives/Game.py - Piece movement → Board blocks: creates pieces
Tetrominos.py - Piece movement → Rules and constants: reads rules
Tetrominos.py - Piece movement → Game utilities: uses
Tetrominos.py - Board blocks → Rules and constants: reads bounds
Block.py - Level editor → Board blocks: creates blocks
Editor.py - Level editor → Game utilities: uses
Editor.py - Option slider → Buttons: uses template
Tools/Slider.py - Option slider → Game utilities: maps values
Tools/Slider.py - Option carousel → Buttons: uses
Tools/Carousel.py - Player → Game session: plays
Readme.md - Game session → Sound playback: plays effects
Main.py