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.
- Host: GitHub
- URL: https://github.com/ruan-luidy/spectris
- Owner: ruan-luidy
- Created: 2025-06-03T19:10:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-06T13:24:54.000Z (about 1 year ago)
- Last Synced: 2025-06-06T13:28:08.433Z (about 1 year ago)
- Topics: console-game, csharp, dotnet, game-development, gaming, puzzle-game, recreation, spectre-console, terminal-ui, tetris
- Language: C#
- Homepage:
- Size: 113 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.




## ✨ 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!**