An open API service indexing awesome lists of open source software.

https://github.com/ruan-luidy/spectris

🎮 Jogo de Tetris completo em C# com interface colorida, DAS configurável, T-Spins, temas customizáveis e sistema de pontuação oficial. Console game usando Spectre.Console.
https://github.com/ruan-luidy/spectris

console-game csharp dotnet game-development gaming puzzle-game recreation spectre-console terminal-ui tetris

Last synced: 3 months ago
JSON representation

🎮 Jogo de Tetris completo em C# com interface colorida, DAS configurável, T-Spins, temas customizáveis e sistema de pontuação oficial. Console game usando Spectre.Console.

Awesome Lists containing this project

README

          

# 🎮 Tetris C#

Um jogo de Tetris completo desenvolvido em C# com interface de console avançada usando Spectre.Console.

![.NET](https://img.shields.io/badge/.NET-9.0-512BD4?style=flat-square&logo=dotnet)
![C#](https://img.shields.io/badge/C%23-239120?style=flat-square&logo=c-sharp)
![Spectre.Console](https://img.shields.io/badge/Spectre.Console-0.50.0-FF6B6B?style=flat-square)
![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)

## ✨ Características

### 🎯 Jogabilidade Completa
- **Sistema de pontuação oficial do Tetris** com T-Spins, Perfect Clears e combos
- **DAS (Delayed Auto Shift)** configurável para movimento preciso
- **Sistema Hold** para armazenar peças
- **Bag System** oficial do Tetris para geração de peças
- **Ghost piece** no modo fácil
- **Wall kicks** e **SRS** (Super Rotation System)

### 🎨 Interface Visual
- **Interface colorida** usando Spectre.Console
- **4 temas pré-definidos** (Default, Autumn Haze, Ocean, Neon)
- **Editor de temas integrado** no menu
- **Painéis organizados** com estatísticas, próxima peça e hold
- **Modo debug** com informações técnicas

### ⚙️ Configuração Avançada
- **Controles totalmente configuráveis**
- **Configuração DAS** (delay e repeat rate)
- **Sistema de níveis** com gravidade progressiva
- **Configurações salvas em JSON**
- **FPS configurável**

## 🚀 Instalação e Execução

### Pré-requisitos
- [.NET 9.0 SDK](https://dotnet.microsoft.com/download)

### Instalação Rápida

#### Windows
```bash
# Clone o repositório
git clone https://github.com/seuusuario/tetris-csharp.git
cd tetris-csharp

# Execute o setup automático
setup.bat
```

#### Linux/macOS
```bash
# Clone o repositório
git clone https://github.com/seuusuario/tetris-csharp.git
cd tetris-csharp/Tetris

# Restaurar dependências
dotnet restore

# Compilar e executar
dotnet run
```

### Instalação Manual
```bash
# Criar projeto
dotnet new console -n Tetris
cd Tetris

# Adicionar dependências
dotnet add package Spectre.Console --version 0.50.0

# Copiar arquivos do código fonte
# Compilar e executar
dotnet run
```

## 🎮 Como Jogar

### Controles Padrão
- **A / D** - Mover esquerda/direita
- **< / >** (vírgula/ponto) - Rotacionar esquerda/direita
- **S** - Soft drop (queda suave)
- **Espaço** - Hard drop (queda instantânea)
- **Z** - Hold (segurar/trocar peça)
- **T** - Forfeit (sair para menu)
- **R** - Retry (reiniciar jogo)

*Todos os controles são configuráveis no menu!*

### Sistema de Pontuação
- **Single** (1 linha): 100 × nível
- **Double** (2 linhas): 300 × nível
- **Triple** (3 linhas): 500 × nível
- **Tetris** (4 linhas): 800 × nível
- **T-Spins**: Bônus especiais
- **Perfect Clear**: Bônus máximo
- **Combos**: +50 por combo × nível

## 🛠️ Arquitetura do Projeto

```
Tetris/
├── Config/ # Sistema de configuração e controles
├── Engine/ # Motor de renderização
├── Enums/ # Enumerações do jogo
├── Extensions/ # Extensões e funcionalidades extras
├── Game/ # Lógica principal do jogo
├── Menu/ # Sistema de menus
├── Renderer/ # Renderização e temas
└── Program.cs # Ponto de entrada
```

### Principais Classes
- **`TetrisGame`** - Coordena toda a lógica do jogo
- **`Board`** - Gerencia o tabuleiro e colisões
- **`Tetromino`** - Representa as peças do Tetris
- **`Score`** - Sistema de pontuação e níveis
- **`Controls`** - Gerenciamento de controles
- **`GameConfig`** - Configurações e temas

## ⚡ Características Técnicas

### Performance
- **240 UPS** (Updates Per Second) por padrão
- **60 FPS** de renderização
- **Otimizado** para baixo uso de CPU
- **Renderização diferencial** usando Spectre.Console

### Precisão
- **Sub-pixel positioning** para movimento suave
- **Frame-perfect timing** para DAS
- **Implementação oficial** do SRS

### Configurabilidade
- **DAS configurável** (167ms - 500ms delay, 33ms - 100ms repeat)
- **Gravidade por nível** seguindo padrões oficiais
- **Timings ajustáveis** para todas as mecânicas

## 🎨 Temas Disponíveis

### Default
Cores clássicas do Tetris com verde principal.

### Autumn Haze
Paleta outonal com tons quentes e suaves.

### Ocean
Tema oceânico com azuis e cyans vibrantes.

### Neon
Cores neon vibrantes para uma estética cyberpunk.

*Você pode criar seus próprios temas usando o editor integrado!*

## 🔧 Configuração

O arquivo `config.json` é gerado automaticamente e contém:

```json
{
"config": {
"easyMode": true,
"level": 1,
"dasDelayMs": 200,
"dasRepeatRateMs": 70,
"currentTheme": 0
},
"themes": [...],
"controls": {...}
}
```

## 🤝 Contribuindo

1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/nova-feature`)
3. Commit suas mudanças (`git commit -am 'Adiciona nova feature'`)
4. Push para a branch (`git push origin feature/nova-feature`)
5. Abra um Pull Request

## 📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

## 🙏 Agradecimentos

- **Tetris Company** pela criação do jogo original
- **Spectre.Console** pela excelente biblioteca de interface
- **SRS Documentation** pelas especificações técnicas
- **Comunidade Tetris** pelas diretrizes de implementação

---

⭐ **Se você gostou do projeto, deixe uma estrela!**