Um jogo de Tetris completo desenvolvido em C# com interface de console avançada usando Spectre.Console.
- 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 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
- 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
# Clone o repositório
git clone https://github.com/seuusuario/tetris-csharp.git
cd tetris-csharp
# Execute o setup automático
setup.bat# 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# 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- 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!
- 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
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
TetrisGame- Coordena toda a lógica do jogoBoard- Gerencia o tabuleiro e colisõesTetromino- Representa as peças do TetrisScore- Sistema de pontuação e níveisControls- Gerenciamento de controlesGameConfig- Configurações e temas
- 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
- Sub-pixel positioning para movimento suave
- Frame-perfect timing para DAS
- Implementação oficial do SRS
- 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
Cores clássicas do Tetris com verde principal.
Paleta outonal com tons quentes e suaves.
Tema oceânico com azuis e cyans vibrantes.
Cores neon vibrantes para uma estética cyberpunk.
Você pode criar seus próprios temas usando o editor integrado!
O arquivo config.json é gerado automaticamente e contém:
{
"config": {
"easyMode": true,
"level": 1,
"dasDelayMs": 200,
"dasRepeatRateMs": 70,
"currentTheme": 0
},
"themes": [...],
"controls": {...}
}- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- 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!