{"id":21464306,"url":"https://github.com/marcpinet/takenoko","last_synced_at":"2025-07-15T04:31:32.192Z","repository":{"id":112502977,"uuid":"599721662","full_name":"marcpinet/takenoko","owner":"marcpinet","description":"♟️ Board game made as part of a school project.","archived":true,"fork":false,"pushed_at":"2025-02-01T18:58:08.000Z","size":3951,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T05:24:48.733Z","etag":null,"topics":["board-game","bot","continuous-integration","devops","java","maven","takenoko"],"latest_commit_sha":null,"homepage":"https://marcpinet.me","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcpinet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-02-09T18:37:58.000Z","updated_at":"2025-02-01T18:58:13.000Z","dependencies_parsed_at":"2025-02-01T19:38:09.458Z","dependency_job_id":null,"html_url":"https://github.com/marcpinet/takenoko","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcpinet/takenoko","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Ftakenoko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Ftakenoko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Ftakenoko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Ftakenoko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcpinet","download_url":"https://codeload.github.com/marcpinet/takenoko/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcpinet%2Ftakenoko/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265402833,"owners_count":23759237,"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":["board-game","bot","continuous-integration","devops","java","maven","takenoko"],"created_at":"2024-11-23T07:31:24.311Z","updated_at":"2025-07-15T04:31:32.184Z","avatar_url":"https://github.com/marcpinet.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n[//]: # ([![Contributors][contributors-shield]][contributors-url])\n[//]: # ([![Forks][forks-shield]][forks-url])\n[//]: # ([![Stargazers][stars-shield]][stars-url])\n[//]: # ([![Issues][issues-shield]][issues-url])\n[//]: # ([![MIT License][license-shield]][license-url])\n[//]: # ([![LinkedIn][linkedin-shield]][linkedin-url]--\u003e\n\n[![Java CI with Maven](https://github.com/marcpinet/takenoko/actions/workflows/autotest.yml/badge.svg)](https://github.com/marcpinet/takenoko/actions)\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/marcpinet/takenoko\"\u003e\n\u003cimg src=\"./readme-data/takenoko.png\" alt=\"Logo\" width=\"100\" height=\"100\"--\u003e\n\n\u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eTakenoko\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003eJava implementation of the board game  \u003ca href=\"https://fr.wikipedia.org/wiki/Takenoko\"\u003eTakenoko\u003c/a\u003e where players try to grow and harvest bamboo while managing a garden and a panda.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/marcpinet/takenoko\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/marcpinet/takenoko/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/marcpinet/takenoko/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nNOTE: As we can't fully import issues, projects and pull requests from one repo to another, the projet will be published as is, including some changes we might think of in the future.\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## Game Rules\n\nTakenoko is a board game for 2-4 players, set in ancient China during the Han Dynasty. The objective of the game is to\nearn the most points by cultivating the garden and completing objectives.\n\nHere are the basic rules for playing Takenoko:\n\n- Set up the game board, which consists a pond tile. Place the panda and gardener figurines on the pond.\n- On his turn, a player must choose two different actions from among :\n  - Draw three tiles and choose one to place according to the placement rules\n  - Take an irrigation stick from the reserve and add it to your inventory\n  - Move the gardener and grow the adjacent bamboos according to the rules\n  - Move the panda and get a bamboo on the arrival tile\n  - Draw an objective card of a certain type. (max 5 in your hand)\n- If a player unveils one of his achieved objective cards, he gets the points indicated on the card.\n- The game ends when a player has revealed 7 objective cards, the player with the most points wins.\n\n\u003ca href=\"./readme-data/takenoko.pdf\"\u003eDetailed rules\u003c/a\u003e\n\n## Current features\n\n*Updated on February 09, 2023*\n\n* 3 types of bots (random, strategy, wrecker)\n* Simulations of n games in a row\n* Stats summary output in a `.csv` file\n* Actions system\n* Undo/Redo design\n* Fully automated repo to prevent breaking changes and minimize merge conflicts\n* Extensible, well-documented\n\n### Built With\n\n* [Java](https://www.java.com/fr/)\n* [Maven](https://maven.apache.org/)\n* [JUnit](https://junit.org/junit5/)\n* [OpenCSV](https://mvnrepository.com/artifact/com.opencsv/opencsv/)\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\n### Prerequisites\n\n* Maven\n* Java 17 with preview enabled (--enable-preview VM option)\n* Git\n\n### Installation\n\n1. Clone the repo\n\n   ```sh\n   git clone https://github.com/marcpinet/takenoko.git\n   ```\n2. Install the required dependencies\n\n   ```sh\n   mvn clean install\n   ```\n3. Build and run the project\n\n   ```sh\n   mvn exec:java\n   ```\n\n### Tests and arguments\n\nRun tests\n\n```sh\nmvn test\n```\n\nGenerate reports of 300 games (can be tweaked in the [Main](src/main/java/takenoko/main/Main.java) file)\n\n```sh\nmvn -e exec:java '-Dexec.args=\"--csv\"'\n```\n\nGenerate simulation of 2000 games\n\n```sh\nmvn -e exec:java '-Dexec.args=\"--2thousands\"'\n```\n\nDemo of a single game\n\n```sh\nmvn -e exec:java '-Dexec.args=\"--demo\"'\n```\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## Usage\n\nThis version of takenoko is fully automated: bots of different levels play against each other, so there is no specific\naction to perform during the game, logs informing about each action will be logged as well as the detailed result of the\ngame.\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the Mozilla Public License Version 2.0. See `LICENSE` for more information.\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links\n[contributors-shield]: https://img.shields.io/github/contributors/marcpinet/takenoko.svg?style=for-the-badge\n[contributors-url]: https://github.com/marcpinet/takenoko/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/marcpinet/takenoko.svg?style=for-the-badge\n[forks-url]: https://github.com/marcpinet/takenoko/network/members\n[stars-shield]: https://img.shields.io/github/stars/marcpinet/takenoko.svg?style=for-the-badge\n[stars-url]: https://github.com/marcpinet/takenoko/stargazers\n[issues-shield]: https://img.shields.io/github/issues/marcpinet/takenoko.svg?style=for-the-badge\n[issues-url]: https://github.com/marcpinet/takenoko/issues\n[license-shield]: https://img.shields.io/github/license/marcpinet/takenoko.svg?style=for-the-badge\n[license-url]: https://github.com/marcpinet/takenoko/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/linkedin_usern--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpinet%2Ftakenoko","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcpinet%2Ftakenoko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcpinet%2Ftakenoko/lists"}