Metadata-Version: 2.4
Name: textual-tetris
Version: 0.3.1
Summary: A Tetris game for your terminal, built with the Textual framework.
Keywords: tetris,textual,game,console,terminal
Author-email: Martín Gaitán <gaitan@gmail.com>
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-Expression: BSD-3-Clause
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Terminals
Classifier: Environment :: Console
License-File: LICENSE
Requires-Dist: textual
Project-URL: Issues, https://github.com/mgaitan/textris/issues
Project-URL: Repository, https://github.com/mgaitan/textris

# textual-tetris

textual-tetris is a minimalist Tetris clone written with [Textual](https://textual.textualize.io/), an amazing TUI framework for Python. It focuses on compact components, colorized blocks, and a responsive keyboard feel in the terminal.

## Running
The easiest way is using `uvx` (part of [uv](https://docs.astral.sh/uv/)): 

```bash
uvx textual-tetris
```

Blog post: https://mgaitan.github.io/en/posts/textual-tetris/


## The mandatory screenshot 

![](screenshot.png)



## Gameplay
- Blocks follow the classic rules: move left/right, rotate, soft drop, and hard drop.
- Every locked piece awards a small bonus; clearing 1–4 lines follows the traditional scoring table. Levels increase automatically based on the number of cleared lines, and the drop interval accelerates per level.
- The `Next` widget previews the upcoming piece so you can plan ahead, and the score widget keeps score/level/lines visible at all times.

### Controls
| Key | Action |
| --- | --- |
| `← / A` | Move left |
| `→ / D` | Move right |
| `↓ / S` | Soft drop |
| `↑ / W` | Rotate |
| `Space` | Hard drop |
| `Ctrl+Q` | Quit |
| `R` | Restart after a game-over |

