{"id":15069081,"url":"https://github.com/teemoo7/bobby","last_synced_at":"2025-04-10T17:44:19.855Z","repository":{"id":92181228,"uuid":"169288623","full_name":"teemoo7/bobby","owner":"teemoo7","description":"Chess game","archived":false,"fork":false,"pushed_at":"2025-02-07T11:10:16.000Z","size":1322,"stargazers_count":22,"open_issues_count":1,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T15:22:02.931Z","etag":null,"topics":["chess","game","java","minmax-algorithm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teemoo7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-02-05T18:16:12.000Z","updated_at":"2025-02-07T11:10:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"28f9b386-58a3-4055-ae79-d40c9f614244","html_url":"https://github.com/teemoo7/bobby","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemoo7%2Fbobby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemoo7%2Fbobby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemoo7%2Fbobby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teemoo7%2Fbobby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teemoo7","download_url":"https://codeload.github.com/teemoo7/bobby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262299,"owners_count":21074283,"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","minmax-algorithm"],"created_at":"2024-09-25T01:40:23.551Z","updated_at":"2025-04-10T17:44:19.831Z","avatar_url":"https://github.com/teemoo7.png","language":"Java","readme":"# Bobby\n\n[![Build](https://github.com/teemoo7/bobby/actions/workflows/build.yml/badge.svg)](https://github.com/teemoo7/bobby/actions/workflows/build.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ch.teemoo%3Abobby\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=ch.teemoo%3Abobby) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=ch.teemoo%3Abobby\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=ch.teemoo%3Abobby)\n\n---\n\n:boom: **Try it on [Lichess](https://lichess.org/@/bobby-bot)**! :boom:\n\n---\n\nThis basic Chess game is a humble tribute to famous Chess player [Robert James \"Bobby\" Fischer](https://en.wikipedia.org/wiki/Bobby_Fischer), World Chess Champion.\n\nNote that the author does not agree with Fischer's political and religious opinions, but remains a fan of his genius at Chess.\n\n![Bobby Chess Game](src/main/resources/img/logo.png \"Bobby Chess Game\")\n\n**Note:** requires Java 17\n\n## About Bobby\n\nIf you are interested in how this engine works, please have a look at those two articles by the author:\n\n1. [Implementing a Chess engine from scratch](https://towardsdatascience.com/implementing-a-chess-engine-from-scratch-be38cbdae91?source=friends_link\u0026sk=ebc15d3d963f1e61ca1bfe7961afdcad)\n2. [Enhancing a Java Swing App to a clean, elegant Web App without changing the code](https://codeburst.io/enhancing-a-java-swing-app-to-a-clean-elegant-web-app-without-changing-the-code-a69d7c1c2781?source=friends_link\u0026sk=952623a093a6bed7870746b52719ef88)\n\n![Bobby Chess Board](src/main/resources/img/bobby-settings.png \"Bobby Settings\")\n\n![Bobby Chess Board](src/main/resources/img/bobby-board.png \"Bobby Chess Board\")\n\n## How to launch\n\n### From a released JAR\n\n1. If not already done, you can install OpenJDK 17 for free (see the excellent distributions of [Temurin by Adoptium](https://adoptium.net/temurin/releases/?version=17))\n2. Download the [latest release JAR](https://github.com/teemoo7/bobby/releases/download/bobby-0.1/bobby-0.1.jar)\n3. Then launch the downloaded JAR\n    ```\n    java -jar bobby-0.1.jar \n    ```\n \n### From source code\n\n1. Checkout the code\n2. Build it with maven\n    ```\n     mvn package -Dmaven.test.skip=true\n    ```\n3. Launch the created JAR\n    ```\n    java -jar target/bobby-1.0-SNAPSHOT.jar \n    ```\n\n### Online (deprecated)\n\n#### Lichess Bot (deprecated)\n\nThanks to the great lib [Chariot](https://github.com/tors42/chariot), it was possible to play against Bobby on Lichess.\n\nJust browse to [bobby-bot profile on Lichess.org](https://lichess.org/@/bobby-bot) and challenge it! If the server is running, the bot will accept the challenge and play.\n\nHowever, the bot has been stopped for costs reasons.\n\n#### GUI in browser (deprecated)\n\nThere was a browser version of the game (limited to one single user at a time), but it was stopped for costs reasons.\n\n## Features\n\n### Game\n\n* AI with multiple strength level, from random-stupid to 3-depths computation, using a minimax algorithm\n* All moves implemented\n* Change GUI view according to selected color\n* Draw proposals\n* Undo last move\n* Suggest move\n* Usage of 15+ famous openings\n* Limit computation time to _n_ seconds\n* Save game to and load from text files with basic notation\n* Load PGN file\n* AI is as arrogant as the real Bobby was :smile:\n\n### Technical\n\n* Uses Java 17\n* Ability to use bundled light JRE ([doc here](PACKAGE.md))\n* Strong code coverage, incl. GUI testing\n* Code style with Checkstyle, code quality with SpotBugs and SonarSource\n* Pipeline with GitHub Actions\n* Uses a nice modern Look \u0026 Feel [FlatLaf](https://github.com/JFormDesigner/FlatLaf) for all platforms\n* Uses free font _FreeSerif_ in order to have a nice rendering of chess pieces\n\n## Limitations\n\n### Computation time\n\nThe implemented AI works uses a depth-first computation, which means that if the computation time is restricted, it may not evaluate every single possible move: it evaluates as deep as possible a first move, then a second, etc, but has no guarantee to cover every move of the first depth.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemoo7%2Fbobby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteemoo7%2Fbobby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteemoo7%2Fbobby/lists"}