O ChessFX é uma aplicação de xadrez desenvolvida em Java utilizando a biblioteca JavaFX para a interface gráfica. O projeto implementa as regras fundamentais do xadrez, permitindo partidas entre dois jogadores locais ou contra uma Inteligência Artificial (IA) simples.
-
Modos de Jogo: Suporta partidas localmente (Humano vs Humano) e um modo Humano vs IA.
-
Regras Completas: Inclui movimentos especiais como:
-
Roque (Grande e Pequeno).
-
En Passant.
-
Promoção de Peão através de uma janela interativa.
-
Sistema de Relógio: Cada jogador tem um tempo limite (ex: 10 minutos) que é decrementado durante o seu turno.
-
Cemitério de Peças: Visualização das peças capturadas por cada jogador.
-
Personalização: Permite a alteração do tema do tabuleiro (Castanho, Azul ou Verde) e do estilo das peças através de ficheiros CSS.
-
Efeitos Sonoros: Sons integrados para movimentos, capturas e fim de jogo.
-
IA Básica: Um motor de jogo que avalia as capturas disponíveis para decidir o melhor movimento.
- Java: Linguagem principal do projeto.
- JavaFX: Utilizado para a interface de utilizador (UI) e gestão de eventos.
- FXML: Para a definição da estrutura das vistas (menus, tabuleiros).
- CSS: Para a estilização dinâmica dos temas do jogo.
ChessFX.java: Classe principal que inicia a aplicação e carrega o menu inicial.controller/: Contém a lógica de controlo, incluindo oBoardController.java(lógica do tabuleiro) e gestão de turnos.models/: Classes que representam as peças (Rei, Rainha, Torre, Bispo, Cavalo, Peão) e as suas regras de movimento.view/: Ficheiros FXML que definem a interface visual (Menu, Tabuleiro, Promoção).resources/: Recursos multimédia como imagens (peças e tabuleiros), sons e fontes.
- Iniciar: Execute a classe
ChessFX. - Configurar: No menu inicial, escolha o tema visual pretendido e se deseja jogar contra a IA.
- Movimentar: Clique numa peça para ver os seus movimentos válidos (destacados no tabuleiro) e clique na casa de destino para completar a jogada.
- Vencer: O jogo termina por xeque-mate, esgotamento de tempo ou desistência de um dos jogadores.
Projeto desenvolvido em ambiente NetBeans e no âmbito da UC de Interação Humana com o Computador.