130 lines
3.2 KiB
Markdown
130 lines
3.2 KiB
Markdown
<h1 align="center">
|
||
<img width="320" height="288" src="https://gitea.redturtle.foo/crayonix/tetri5/raw/branch/main/frontend/data/image/title_screen.png" alt="Tetri5 Title Screen">
|
||
</h1>
|
||
|
||
<h4 align="center">A modern, full-featured falling blocks game built with Python and the <a href="https://www.pygame.org/wiki/about" target="_blank">Pygame</a> library.</h4>
|
||
|
||
<br>
|
||
|
||
<p align="center">
|
||
<a href="#key-features">Key Features</a> •
|
||
<a href="#how-to-play">How to Play</a> •
|
||
<a href="#installation">Installation</a> •
|
||
<a href="#docker-support">Docker Support</a> •
|
||
<a href="#contributing">Contributing</a> •
|
||
<a href="#license">License</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<img src="https://gitea.redturtle.foo/crayonix/tetri5/raw/branch/main/gameplay.gif?raw=true" alt="Tetri5 Gameplay Demo">
|
||
</p>
|
||
|
||
---
|
||
|
||
## Key Features
|
||
|
||
* 🎮 **Single Player Mode** – Enjoy solo gameplay where blocks fall faster as you clear more lines.
|
||
* 🧠 **Scoring System** – Rack up points by clearing multiple lines simultaneously.
|
||
* 🎛️ **Keyboard Controls** – Use the arrow keys to play (custom key bindings not currently supported).
|
||
* 💻 **Cross-Platform Compatibility** – Runs on Windows, Linux, and macOS.
|
||
* 🐳 **Docker Support** – Containerized for easy deployment and web-based play.
|
||
|
||
---
|
||
|
||
## How to Play
|
||
|
||
* Move blocks using the arrow keys.
|
||
* Rotate and position blocks to complete horizontal lines.
|
||
* Clear lines to earn points and speed up gameplay.
|
||
* The game ends when the stack reaches the top.
|
||
|
||
> 💡 Pro Tip: Clearing four lines at once (a "Tetris") earns the most points!
|
||
|
||
---
|
||
|
||
## Game Mechanics
|
||
|
||
* ✅ **Rotate Right** – Rotate a piece clockwise.
|
||
* ❌ **Rotate Left** – (Not yet implemented) Rotate a piece counter-clockwise.
|
||
* ✅ **Soft Drop** – Temporarily increase the fall speed of the current piece.
|
||
* ✅ **Hard Drop** – Instantly drop the piece to the bottom of the well.
|
||
* ✅ **Lock Delay** – A short grace period before the piece locks in place.
|
||
* ✅ **Wall Kick** – Allows rotation near walls when there isn't enough space.
|
||
* ✅ **Next Piece Preview** – Shows the next piece in the queue.
|
||
|
||
---
|
||
|
||
## Installation
|
||
|
||
Clone the repository and install the local development dependencies:
|
||
|
||
```bash
|
||
git clone https://gitea.redturtle.foo/crayonix/tetri5.git
|
||
cd tetri5
|
||
pip install -r requirements.local.txt
|
||
```
|
||
|
||
To launch the game:
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
---
|
||
|
||
## Docker Support
|
||
|
||
To build the Docker image:
|
||
|
||
```bash
|
||
docker build -t tetri5 frontend
|
||
```
|
||
|
||
To run the game in a Docker container and access it via a web browser:
|
||
|
||
```bash
|
||
docker run -p 3010:3010 tetri5
|
||
```
|
||
|
||
Then open your browser and go to:
|
||
|
||
```
|
||
http://localhost:3010
|
||
```
|
||
|
||
---
|
||
|
||
## Contributing
|
||
|
||
Contributions are welcome! Here’s how to get started:
|
||
|
||
1. Fork the repository
|
||
2. Create a new branch:
|
||
|
||
```bash
|
||
git checkout -b feature/my-feature
|
||
```
|
||
3. Make your changes and commit:
|
||
|
||
```bash
|
||
git commit -m "Add my feature"
|
||
```
|
||
4. Push to your fork:
|
||
|
||
```bash
|
||
git push origin feature/my-feature
|
||
```
|
||
5. Open a pull request on Gitea
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
This project is licensed under the [FUTO Source Available License 1.0](LICENSE).
|
||
|
||
---
|
||
|
||
<p align="center">
|
||
Made with ❤️ using Python & Pygame
|
||
</p>
|