Skip to content
/ Bamboo Public

An implementation of the game Bamboo with several AI agents to play against

License

Notifications You must be signed in to change notification settings

S010MON/Bamboo

Repository files navigation

workflow workflow workflow

Bamboo

An implementation of the game originally desgined by Mark Steere in March 21, a copy of the research paper on applying machine learning to the problem of playing the game can be found here

Contents

  • Gameplay
  • Dependencies
  • Installation
  • Preview
  • Notes

Gameplay

Bamboo is a two player game played on an initially empty hexagonal grid. The two players, Red and Blue, place their own stones onto unoccupied cells on the board, one stone per turn. Players are not allowed to pass.

Placements

A group is comprised of one or more interconnected, like colored, stones.
A player’s group can’t contain more stones than the number of groups he has.

Objective

The last player to place a stone wins.

A copy of the rules, with figures can be found here: http://www.marksteeregames.com/Bamboo_rules.pdf


Dependencies

Ensure the following are installed before running:

  • Java 17
  • Gradle 7.1

Installation Instructions

Executable .jar

An executeable jar file of the latest release is available here or can be found by downloading the repository as a .zip and navigating to /app/build/libs. Run the jar using the command java -jar Bamboo-main/app/build/libs/app.jar from the extracted repository. (In case of issues, check the java version used is 17 and that the app.jar file path is correct)

Source

To compile the game from source clone the repository and navigate to /Bamboo then run:

$ gradle build

$ gradle run

Notes

Temporarily, the Neural Network only works on the size 5 grid, an out of bounds error will be thrown for any other size used. This is a known issue that will be patched in due course.

Preview

Screenshot.png