# Tetris ![Tests](https://github.com/kristoferssolo/Tetris/actions/workflows/tests.yml/badge.svg) ![Lint](https://github.com/kristoferssolo/Tetris/actions/workflows/lint.yml/badge.svg) - [Overview](#overview) - [Prerequisites](#prerequisites) - [Running the game](#running-the-game) - [Settings](#settings) * [General Settings](#general-settings) * [Movement Settings](#movement-settings) * [Rotation Settings](#rotation-settings) * [Action Settings](#action-settings) * [Volume Settings](#volume-settings) + [Music](#music) + [Sound Effects (SFX)](#sound-effects-sfx) - [Acknowledgments](#acknowledgments) ## Overview Welcome to Tetris, a classic and timeless game implemented in Python using the [Pygame](https://www.pygame.org/) library. ## Prerequisites Before running the Tetris game, make sure you have the following installed on your system: - Python (version 3.11 recommended) ## Running the game 1. Clone the repository: ```bash git clone https://github.com/kristoferssolo/Tetris ``` 2. Navigate to the project directory: ```bash cd Tetris ``` 3. Install the required dependencies: ```bash pip install . ``` 4. Run the game: ```bash python main.py # or python -m tetris ``` ## Settings The `settings.toml` file is a configuration file for customizing various aspects of the game. ### General Settings - `pause`: Defines the keys to pause the game. Currently a work in progress (WIP[^WIP]). - `quit`: Defines the key(s) to quit the game. - `colorscheme`: Specifies the color scheme for the game interface. Options include: - `tokyonight-night` - `tokyonight-storm` - `tokyonight-day` - `tokyonight-moon` ### Movement Settings - `left`: Defines the keys to move the tetromino[^tetromino] left. - `right`: Defines the keys to move the tetromino right. - `down`: Defines the keys to accelerate the tetromino's fall. ### Rotation Settings - `cw (clockwise )`: Defines the keys to rotate the tetromino in a clockwise direction. - `ccw (counter-clockwise)`: Defines the keys to rotate the tetromino in a counter-clockwise direction. ### Action Settings - `hold`: Defines the keys to hold the tetromino (WIP). - `drop`: Defines the keys to instantly drop the tetromino. ### Volume Settings #### Music - `enabled`: Indicates whether music is enabled. - `level`: Specifies the volume level for the music. #### Sound Effects (SFX) - `enabled`: Indicates whether sound effects are enabled. - `level`: Specifies the volume level for the sound effects. ## Acknowledgments Thanks to [Folke](https://github.com/folke), the creator of [TokyoNight](https://github.com/folke/tokyonight.nvim) color theme. [^WIP]: Work In Progress. [^tetromino]: A tetromino is a geometric shape composed of four squares, connected orthogonally (i.e. at the edges and not the corners).