A classic Tetris game implemented in C++ using the Raylib graphics library. This project includes core Tetris functionalities such as block movement, rotation, collision detection, row clearing, scoring, and sound effects.
game.cpp / game.h: Controls the main game execution loop and manages the core gameplay mechanics.grid.cpp / grid.h: Creates and manages the Tetris grid with rows and columns, allowing blocks to move, rotate, and stack within the grid.block.cpp / block.h / colors.h / colors.cpp: Defines the different Tetris blocks (tetrominoes) with unique shapes and colors.position.cpp / position.h: Manages block positions within the grid, including movement (left, right, down) and rotation logic to fit blocks within available spaces.
- Game Loop: Manages the core game flow and state transitions.
- Grid Creation: Generates a Tetris grid where blocks can move and stack.
- Tetromino Blocks: Implements various Tetris blocks with unique colors and shapes.
- Movement & Rotation: Blocks can move left, right, down, and rotate to fit available spaces within the grid.
- Collision Detection: Prevents blocks from moving through other blocks or outside the grid boundaries.
- Row Clearing: Removes completed rows and shifts blocks down accordingly.
- Game Over Detection: Ends the game when blocks reach the top of the grid.
- User Interface: Displays current score, level, and game status.
- Scoring System: Awards points for each cleared row, with higher scores awarded as levels progress.
- Sound Effects: Adds audio feedback for actions like block placement and row clearing, enhancing the game experience.

