{"id":20181338,"url":"https://github.com/lasbrdev/chessgame-consoleapplication","last_synced_at":"2025-07-14T07:32:59.546Z","repository":{"id":212283130,"uuid":"731124478","full_name":"lasbrDev/chessgame-consoleapplication","owner":"lasbrDev","description":"Project to consolidate learning in OOP and also to add more joy to those who enjoy a good game of chess!","archived":false,"fork":false,"pushed_at":"2024-01-15T19:11:50.000Z","size":82,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T06:29:00.110Z","etag":null,"topics":["chess-game","java","oops-in-java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lasbrDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-13T12:08:52.000Z","updated_at":"2024-01-15T23:40:08.000Z","dependencies_parsed_at":"2023-12-13T13:29:20.134Z","dependency_job_id":"42e6ed5e-c226-4570-ae8c-13ea1c07beda","html_url":"https://github.com/lasbrDev/chessgame-consoleapplication","commit_stats":null,"previous_names":["lasbrdev/chessgame-consoleapplication"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lasbrDev/chessgame-consoleapplication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fchessgame-consoleapplication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fchessgame-consoleapplication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fchessgame-consoleapplication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fchessgame-consoleapplication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lasbrDev","download_url":"https://codeload.github.com/lasbrDev/chessgame-consoleapplication/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fchessgame-consoleapplication/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265255374,"owners_count":23735244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chess-game","java","oops-in-java"],"created_at":"2024-11-14T02:35:08.954Z","updated_at":"2025-07-14T07:32:59.520Z","avatar_url":"https://github.com/lasbrDev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chess Game\n\nEste é um projeto simples de um jogo de xadrez em Java, implementado usando orientação a objetos.\n\n## Estrutura do Projeto\n\nO projeto está organizado em vários pacotes:\n\n- `chess`: Contém classes relacionadas ao jogo de xadrez em geral.\n- `chess.pieces`: Contém classes específicas para diferentes tipos de peças de xadrez.\n- `bordgame`: Classes relacionadas ao tabuleiro do jogo.\n\n```bash\nsrc\n├── application\n│   ├── Program.java\n│   └── UI.java\n├── bordgame\n│   ├── BoardException.java\n│   ├── Board.java\n│   ├── Piece.java\n│   └── Position.java\n└── chess\n    ├── ChessException.java\n    ├── ChessMatch.java\n    ├── ChessPiece.java\n    ├── ChessPosition.java\n    ├── Color.java\n    └── pieces\n        ├── Bishop.java\n        ├── King.java\n        ├── Knight.java\n        ├── Pawn.java\n        ├── Queen.java\n        └── Rook.java\n```\n## Classes Principais\n\n### ChessPiece\n\nA classe `ChessPiece` é uma classe abstrata que representa peças de xadrez. Contém métodos e propriedades comuns a todas as peças.\n\n### ChessPosition\n\nA classe `ChessPosition` representa as posições no tabuleiro de xadrez usando notação alfanumérica (por exemplo, \"a1\", \"h8\").\n\n### Color\n\nUm enum `Color` para representar as cores das peças de xadrez (preto ou branco).\n\n### Bishop, King, Knight, Pawn, Queen, Rook\n\nEssas classes representam peças específicas do xadrez e estendem a classe `ChessPiece`. Cada uma implementa seu próprio comportamento de movimento.\n\n## Tratamento de Erros e programação defenciva\n\nO código implementa algumas verificações de erro e tratamentos específicos. Aqui estão alguns cenários possíveis:\n\n1. Coordenadas Inválidas:\n\t* 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.\n\t* Certifique-se de instruir os usuários a fornecerem coordenadas válidas no formato correto (por exemplo, a1 a h8).\n\t\n2. Movimentos Inválidos das Peças:\n\t* 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.\n\t* Instrua os usuários a seguir as regras do xadrez e a evitar movimentos inválidos.\n\t\n3. Operações Fora do Tabuleiro:\n\t* Se o código tentar acessar uma posição fora dos limites do tabuleiro, o tratamento de erro é realizado.\n\t* Explique aos usuários que as operações devem ocorrer dentro dos limites do tabuleiro.\n\n## Exemplo de Uso\n\nAqui está um exemplo básico de como criar um jogo de xadrez:\n\n * Clonar o repositório [aqui](https://github.com/lasbrDev/chessgame-consoleapplication.git)\n * Acessar o diretório **bin**\n \n ```bash\n $ cd chessgame-consoleapplication\n $ cd bin\n java application.Program\n```\n![chess-console.png](docs/chess-console.png)\n\n## Stack Utilizada\n\n- Java 17\n\n## Conceitos abordados\n\nEste 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.\n\t\n## Contribuição\n\nSinta-se à vontade para contribuir para o projeto abrindo problemas ou enviando solicitações de pull. Toda contribuição é bem-vinda!\n\n\n\t\t\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasbrdev%2Fchessgame-consoleapplication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flasbrdev%2Fchessgame-consoleapplication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasbrdev%2Fchessgame-consoleapplication/lists"}