{"id":23231826,"url":"https://github.com/tangilj/onitama","last_synced_at":"2025-04-05T19:35:22.925Z","repository":{"id":133516052,"uuid":"310664086","full_name":"TangilJ/Onitama","owner":"TangilJ","description":"AI for the Onitama board game, written in C++.","archived":false,"fork":false,"pushed_at":"2021-03-11T16:35:55.000Z","size":201,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T17:18:54.753Z","etag":null,"topics":["ai","board-game","cpp","onitama"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TangilJ.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":"2020-11-06T17:33:45.000Z","updated_at":"2024-02-17T03:50:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"95880820-e95b-4388-9aa7-0b0c749df82b","html_url":"https://github.com/TangilJ/Onitama","commit_stats":null,"previous_names":["tangilj/onitama"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2FOnitama","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2FOnitama/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2FOnitama/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TangilJ%2FOnitama/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TangilJ","download_url":"https://codeload.github.com/TangilJ/Onitama/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247392910,"owners_count":20931799,"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":["ai","board-game","cpp","onitama"],"created_at":"2024-12-19T02:16:42.799Z","updated_at":"2025-04-05T19:35:22.899Z","avatar_url":"https://github.com/TangilJ.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Onitama\n\nThis is an AI for the board game called [Onitama](https://www.arcanewonders.com/game/onitama/).\n\n## Features\n\n* Bitboards\n* Negamax tree search\n* Alpha-beta pruning\n* Can play against itself\n* Can play against other bots/players on the Litama server\n* Perft (performance test)\n\n## Getting the AI\n\n### From Releases\n\nThis is the easiest way to get the AI. Simply download the latest version of the AI from the\n[Releases](https://github.com/TheBlocks/Onitama/releases) section on the GitHub repository.\n\n### From source\n\nThe GitHub repository comes with a `CMakeLists.txt` file so that you can easily compile the project yourself. Make sure\nto clone the repository with `--recurse-submodules`\n(i.e. `git clone --recurse-submodules https://github.com/TheBlocks/Onitama`) so that you also get all the necessary\ndependencies in the `extern/` folder.\n\nThe code compiles on both GCC and Clang. Other compilers have not been tested. Note that GCC builds do not support\nparallel perft.\n\n## Running\n\nThe executable comes with a command line interface with several different options for the AI. Run the executable with\nthe `-h` flag to see all options.\n\n```\n\u003e Onitama.exe -h\n\nUsage: Onitama.exe [OPTIONS] [SUBCOMMAND]\n\nOptions:\n  -h,--help                   Print this help message and exit\n  -v,--version                Print engine version.\n\nSubcommands:\n  perft                       Run perft (performance test).\n  self                        Make the AI play against itself.\n  human                       Make the AI play against a human.\n  server                      Make the AI play on the Litama server.\n  tests                       Run tests to verify the engine is working correctly.\n                              Write extra command line options after 'tests' to pass them to doctest (e.g. Onitama.exe tests -ltc).\n\nRun --help on a subcommand to see its options.\nOnitama engine written in C++ by Tangil Jahangir.\n```\n\n## Built with\n\n* [CLIUtils/CLI11](https://github.com/CLIUtils/CLI11) - For the command line interface\n* [onqtam/doctest](https://github.com/onqtam/doctest) - For running unit tests\n* [dhbaird/easywsclient](https://github.com/dhbaird/easywsclient) - For connecting to the Litama server with WebSocket\n* [nlohmann/json](https://github.com/nlohmann/json) - For parsing JSON from the Litama server","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangilj%2Fonitama","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangilj%2Fonitama","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangilj%2Fonitama/lists"}