s21_BrickGame Tetris and Snake games developed as a practice project at School 21 (formerly 42.fr). Two interfaces for each game: Qt-based GUI and ncurses console MVC architecture with logic/UI separation Finite state machines for game logic The mixed-language approach: C11 for tetris backend and C++20 for snake backend Requirements macOS or Linux ncurses (for CLI version, usually pre-installed) Qt6 (for desktop GUI version) Installation Both versions: git clone https://github.com/makesnosense/s21_brickgame.git cd s21_brickgame make install CLI only: make install_cli Desktop GUI only (requires Qt6): make install_desktop Running CLI ./bin/run_cli GUI ./bin/run_desktop Uninstall make uninstall Tetris Controls Key Action Description ← (Left) Left Move the piece left → (Right) Right Move the piece right ↓ (Down) Down Soft drop the piece Space Action Rotate the piece Q or q Terminate Quit the game P or p Pause Pause the game Snake Controls Key Action Description ← (Left) Left Turn counterclockwise → (Right) Right Turn clockwise Q or q Terminate Quit the game P or p Pause Pause the game