CLI de xadrez para terminal, com suporte a:
- Partida local (2 jogadores)
- Partida contra Stockfish
- Modo normal e modo as cegas
- Menu interativo e tratamento de erros
- Persistencia de partidas em SQLite
- Estatisticas de vitorias/empates/desistencias
- Historico paginado e replay de partidas
- Node.js 18+
npm install
npm startnpm install -g xadrez-cli
xadrezAo iniciar, o menu principal oferece:
- Jogar (2 jogadores)
- Jogar vs Stockfish
- Estatisticas
- Historico de partidas
- Sair
Depois de escolher o tipo de partida, voce escolhe:
- Normal
- As cegas
- Voltar
Se escolher Stockfish, ha um menu de dificuldade:
- Facil (depth 4)
- Medio (depth 8)
- Dificil (depth 16)
- Voltar
Digite jogadas no formato esperado pelo chess.js, por exemplo:
b1c3
o sistema aceita entrada tipo e2e4, é o mais confiavel.
menu: volta ao menu principalnovo: reinicia a partida atualsair: encerra o programatabuleiro: mostra o tabuleiro (util quando estiver no modo as cegas)
Se o jogador usar sair no meio da partida, o resultado e salvo como desistência.
As partidas e jogadas sao salvas automaticamente em um banco SQLite local.
- arquivo:
data/chess.db - tabela
games: metadados da partida (modo, depth, resultado, total de jogadas) - tabela
game_moves: historico de jogadas com SAN e FEN
A tela de estatisticas mostra:
- total de partidas finalizadas
- vitorias das brancas
- vitorias das pretas
- empates
- desistencias das brancas
- desistencias das pretas
- media de jogadas
Tambem exibe as ultimas partidas registradas.
O historico e exibido em paginas de 10 partidas por vez.
Comandos disponiveis:
n,>,->: proxima paginap,<,<-: pagina anterior1a10: abrir partida da linha escolhidalimpar: apagar todo o historico (com confirmacao)Escouvoltar: voltar ao menu principal
Nota: no terminal, as setas direita/esquerda tambem funcionam para navegar paginas.
Ao abrir uma partida do historico, voce pode navegar lance a lance:
->(seta direita) ou>: proximo lance<-(seta esquerda) ou<: lance anteriorfen: mostra a FEN da posicao atualEscouvoltar: retorna ao historico
No modo as cegas, o console e limpo a cada lance e apenas o ultimo movimento e exibido, por exemplo:
Pretas — Nf6 (g8 → f6)
npm start: executa a aplicacaonpm run check: valida sintaxe de todos os arquivos principaisnpm test: alias paranpm run checknpm run seed: gera partidas automaticas Stockfish vs Stockfish no banco
Voce tambem pode gerar partidas em lote:
node scripts/seed-games.js [quantidade] [depth]Exemplo:
node scripts/seed-games.js 50 16Isso ajuda a popular o historico para testes de paginacao e replay.
.
├── index.js
├── package.json
└── src
├── controller
│ └── GameController.js
├── engine
│ └── ChessEngine.js
├── player
│ └── StockfishPlayer.js
├── renderer
│ ├── ChessJsBoardRenderer.js
│ └── UnicodeBoardRenderer.js
└── ui
└── ConsoleUI.js
ISC
