Skip to content

🎮 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.

Notifications You must be signed in to change notification settings

ruan-luidy/Spectris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Tetris C#

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

.NET C# Spectre.Console License

✨ 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

Instalação Rápida

Windows

# 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

# 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

# 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:

{
  "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 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!

About

🎮 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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published