{"id":16111654,"url":"https://github.com/mayankgupta-dev08/projectchess","last_synced_at":"2025-10-17T02:34:35.087Z","repository":{"id":253974230,"uuid":"844897036","full_name":"MayankGupta-dev08/ProjectChess","owner":"MayankGupta-dev08","description":"Simple Chess Application","archived":false,"fork":false,"pushed_at":"2024-09-07T13:22:53.000Z","size":53653,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T08:20:05.886Z","etag":null,"topics":["algorithms","chess","core-java","data-structures","game","game-development","java","oops","vanilla-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/MayankGupta-dev08.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":"2024-08-20T07:18:20.000Z","updated_at":"2024-09-07T13:22:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"d864727c-4cac-478a-9eea-4119999de319","html_url":"https://github.com/MayankGupta-dev08/ProjectChess","commit_stats":null,"previous_names":["mayankgupta-dev08/projectchess"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MayankGupta-dev08/ProjectChess","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayankGupta-dev08%2FProjectChess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayankGupta-dev08%2FProjectChess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayankGupta-dev08%2FProjectChess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayankGupta-dev08%2FProjectChess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MayankGupta-dev08","download_url":"https://codeload.github.com/MayankGupta-dev08/ProjectChess/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayankGupta-dev08%2FProjectChess/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273954881,"owners_count":25197575,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["algorithms","chess","core-java","data-structures","game","game-development","java","oops","vanilla-java"],"created_at":"2024-10-09T19:44:05.674Z","updated_at":"2025-10-17T02:34:30.039Z","avatar_url":"https://github.com/MayankGupta-dev08.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Chess\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"img.png\" width=\"100%\" height=\"40%\"\u003e\r\n\u003c/p\u003e\r\n\r\n## Description\r\n\r\nThis project is a simple chess game made using vanilla Java. It can be played on a computer. It has a UI which allows users to interact with the game using mouse events. The game includes a fully functional chessboard and pieces, with the ability to move pieces according to the rules of chess.\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"img_1.png\" width=\"40%\" height=\"40%\"\u003e\r\n\u003c/p\u003e\r\n\r\n## Features\r\n\r\n- **Graphical User Interface (GUI)**: The game features a graphical interface where users can see the chessboard and pieces.\r\n- **Mouse Interaction**: Users can interact with the game using mouse clicks to select and move pieces.\r\n- **Game Loop**: The game runs in a separate thread to ensure smooth rendering and updates.\r\n- **Piece Setup**: The game initializes with all chess pieces set up in their standard starting positions.\r\n- **Rendering**: The chessboard and pieces are drawn using Java's `Graphics2D` class.\r\n- **Check and Checkmate Detection**: The game can detect check and checkmate conditions.\r\n- **Pawn Promotion**: The game supports pawn promotion.\r\n- **Castling**: The game supports castling moves.\r\n- **Stalemate Detection**: The game can detect stalemate conditions.\r\n\r\n## How to Run\r\n\r\n1. Clone the repository.\r\n2. Navigate to the project directory.\r\n3. Use Maven to build the project:\r\n    ```sh\r\n    mvn clean install\r\n    ```\r\n4. Run the application:\r\n    ```sh\r\n    mvn exec:java -Dexec.mainClass=\"dev.mayank.app.ChessApp\"\r\n    ```\r\n\r\n[//]: # (jpackage --input target/ --name ProjectChess --main-jar ProjectChess-v1.0.0-jar-with-dependencies.jar --main-class dev.mayank.app.ChessApp --type exe)\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"img_2.png\" width=\"80%\" height=\"80%\"\u003e\r\n\u003c/p\u003e\r\n\r\n## Code Structure\r\n\r\n- **GamePanel.java**: Manages the game loop, rendering, and user interactions.\r\n- **ChessBoard.java**: Handles the drawing of the chessboard.\r\n- **ChessPiece.java**: Represents individual chess pieces and their behaviors.\r\n- **Mouse.java**: Listen for mouse events to handle piece selection and movement.\r\n- **King.java**: Represents the King piece and its specific movements.\r\n- **Queen.java**: Represents the Queen piece and its specific movements.\r\n- **Bishop.java**: Represents the Bishop piece and its specific movements.\r\n- **Knight.java**: Represents the Knight piece and its specific movements.\r\n- **Rook.java**: Represents the Rook piece and its specific movements.\r\n- **Pawn.java**: Represents the Pawn piece and its specific movements.\r\n\r\n## Future Enhancements\r\n\r\n- Improve the user interface with better graphics and animations.\r\n- Implement an AI opponent to play against.\r\n- Add sound effects for moves and captures.\r\n- Enhance the game with additional features like move history and undo functionality.\r\n\r\n## Contributing\r\n\r\n1. Fork the repository.\r\n2. Create a new branch (`git checkout -b feature-branch`).\r\n3. Make your changes.\r\n4. Commit your changes (`git commit -m 'Add some feature'`).\r\n5. Push to the branch (`git push origin feature-branch`).\r\n6. Open a pull request.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License — see the `LICENSE` file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayankgupta-dev08%2Fprojectchess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayankgupta-dev08%2Fprojectchess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayankgupta-dev08%2Fprojectchess/lists"}