An automatic go board to allow people to interact with current cutting edge Go AI agents on a physical board. Designed in mind for increasing accessibility to the game, with beginners and those with Alzheimer in mind.
Pitch Deck used in NYU Rapid Assembly Design Competition (Fall 2023).
Go, an ancient 3000 year-old chinese board game, has been traditionally very hard to get into as a casual player, with enigmatic "life or death" question books or expensive tutors as the only option to learn these rules. With the advent of AlphaGo beating Lee Sedol, the best Go player in 2016, this opened the flood gates for AI to become suitable mentors and aid in analyzing a players mistakes to help them improve. AutoGo attempts to bridge the traditionally digital format that may be hard for certain demographics due to language barriers, lack of experience, or cognitive disabilities. Through a physical board, we simplify the process in which new players need to play against a calibrated opponent matching their skill level. This also has an effect of improving their memory abilities which is shown to improve early stage Alzheimer's patients
Language VersREADME.mdions:
Install Python Dependencies
pip install numpy
pip install sgfmill
pip install pyserial
pip install pexpect
pip install AppOpener
pip install tk
To install GNUGo and KataGo, please follow their documentation for debugging their installation process. Once setup please ensure that the built model is in the same directory as the go_interface script to avoid file not found errors. Please also change the TODO if you are using a linux based Distribution as pexpect uses a different class to have the same functionality for devices on Windows.
View below file for how it was implemented in the project. == go_interface.py ==
Start a coroutine to run a game with an AI and interface with a physical board. Ends when game has two consecutive passes.
Constructor Method
- board_size: Int from 0 to 19 determining the square parameters ued to play Go
- file_name: name the file to output an SGF file when different method is called upon
- AI_reference: A GTPFacade instance. May or may not be deprecated by final version.
Add game data to a Matrix, update our game steps to an SGF builder, and return a list of indicies used to remove the stones.
Notes
- gtp_vertex: Formatted to GTP vertex standards
- TYPE: A Stone_type enum value (Black or White)
Given Row and col Data in a tuple or list, check if the given row col combination is valid.
performs a usual removal operation using std_check function. Will return a tuple of data in format (int, list)
performs the remove operation over a more specified range of values, used in a recursion algoritm to check whether a group of stones must be removed