Este é um projeto simples de um jogo de xadrez em Java, implementado usando orientação a objetos.
O projeto está organizado em vários pacotes:
chess
: Contém classes relacionadas ao jogo de xadrez em geral.chess.pieces
: Contém classes específicas para diferentes tipos de peças de xadrez.bordgame
: Classes relacionadas ao tabuleiro do jogo.
src
├── application
│ ├── Program.java
│ └── UI.java
├── bordgame
│ ├── BoardException.java
│ ├── Board.java
│ ├── Piece.java
│ └── Position.java
└── chess
├── ChessException.java
├── ChessMatch.java
├── ChessPiece.java
├── ChessPosition.java
├── Color.java
└── pieces
├── Bishop.java
├── King.java
├── Knight.java
├── Pawn.java
├── Queen.java
└── Rook.java
A classe ChessPiece
é uma classe abstrata que representa peças de xadrez. Contém métodos e propriedades comuns a todas as peças.
A classe ChessPosition
representa as posições no tabuleiro de xadrez usando notação alfanumérica (por exemplo, "a1", "h8").
Um enum Color
para representar as cores das peças de xadrez (preto ou branco).
Essas classes representam peças específicas do xadrez e estendem a classe ChessPiece
. Cada uma implementa seu próprio comportamento de movimento.
O código implementa algumas verificações de erro e tratamentos específicos. Aqui estão alguns cenários possíveis:
-
Coordenadas Inválidas:
- Se o usuário ou a lógica do jogo fornecer coordenadas inválidas (fora dos limites do tabuleiro), o código lança uma exceção ChessException.
- Certifique-se de instruir os usuários a fornecerem coordenadas válidas no formato correto (por exemplo, a1 a h8).
-
Movimentos Inválidos das Peças:
- Se um jogador tentar fazer um movimento inválido com uma peça (por exemplo, tentar mover uma peça para uma posição ocupada por outra peça), o código pode lançar exceções específicas para isso.
- Instrua os usuários a seguir as regras do xadrez e a evitar movimentos inválidos.
-
Operações Fora do Tabuleiro:
- Se o código tentar acessar uma posição fora dos limites do tabuleiro, o tratamento de erro é realizado.
- Explique aos usuários que as operações devem ocorrer dentro dos limites do tabuleiro.
Aqui está um exemplo básico de como criar um jogo de xadrez:
- Clonar o repositório aqui
- Acessar o diretório bin
$ cd chessgame-consoleapplication
$ cd bin
java application.Program
- Java 17
Este projeto foi fundamental para a compreensão dos conceitos de orientação a objetos em Java, abrangendo todos os pilares fundamentais desse paradigma, incluindo herança, polimorfismo, encapsulamento e composição. Além disso, demonstra a aplicação de boas práticas de código e design de software.
Sinta-se à vontade para contribuir para o projeto abrindo problemas ou enviando solicitações de pull. Toda contribuição é bem-vinda!