@andreywbs/xadrez-cli
v1.0.12
Published
CLI de xadrez com modo normal, modo as cegas e opcao de jogar contra Stockfish.
Maintainers
Readme
xadrez
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
Requisitos
- Node.js 18+
Instalacao
Usando npm localmente
npm install
npm startUsando como CLI global
npm install -g xadrez-cli
xadrezComo jogar
Ao 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
Entradas de jogada
Digite jogadas no formato esperado pelo chess.js, por exemplo:
b1c3
o sistema aceita entrada tipo e2e4, é o mais confiavel.
Comandos durante a partida
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.
Banco de dados (SQLite)
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
Estatisticas
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.
Historico paginado
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.
Replay de partida
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
Modo as cegas
No modo as cegas, o console e limpo a cada lance e apenas o ultimo movimento e exibido, por exemplo:
Pretas — Nf6 (g8 → f6)
Scripts
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
Seed de partidas
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.
Estrutura do projeto
.
├── index.js
├── package.json
└── src
├── controller
│ └── GameController.js
├── engine
│ └── ChessEngine.js
├── player
│ └── StockfishPlayer.js
├── renderer
│ ├── ChessJsBoardRenderer.js
│ └── UnicodeBoardRenderer.js
└── ui
└── ConsoleUI.jsLicenca
ISC

