nathanaelbosch / go_dilab Goto Github PK
View Code? Open in Web Editor NEWA machine learning how to play GO - DataInnovation-Lab - WS20172018
License: MIT License
A machine learning how to play GO - DataInnovation-Lab - WS20172018
License: MIT License
Implement a simple move generation function, that choses randomly from one of the valid moves that are on the board.
Something we have to think of: When would we stop playing with that logic? But maybe that doesn't even matter, as this is more of a proof of concept anyways.
Found in some comments in the code of GameController.py
, and it totally makes sense, so I thought it might be a good idea to add this to the issues :)
๐ญ Thoughts:
The ruleset is currently stored in self.rules.
Some things change depending on the ruleset:
To avoid having screenshots in the repo, upload them here and link to them in .md
files ๐
The territory/area counting is not completely right yet.
The case I'm thinking of is when there is a single dead stone in the enemy territory, it should probably count as captured by the enemy.
Bonus Idea: Implement some way of visually displaying the reasoning! I have some ideas there for how to do that in the console, maybe we could later add some of that to the GUI :)
We need to be able to understand ๐ and "speak" ๐ฃ GTP.
GTP is supported by various clients and engines. GNU GO seems to be the go-to choice if we want the quasi-standard. So it seems a good idea to find out how GTP works by playing around with it in GNU GO.
Download source files for GNU GO from this site (direct download link for gnugo-3.8.tar.gz
).
Build gnugo by running ./configure
, then make
, then make install
. Now you can start GNU GO in the terminal using gnugo
. To start it in GTP-mode use gnugo --mode gtp
. Now you have to use GTP-commands, see some commands to try out at the bottom of the Sensei's Library GTP site.
๐ค What makes me wonder, there seems to be no support for turn-by-turn management in GTP. There is no method get_current_player
or something like that. black can just submit arbitrarily many moves without getting an error like "it's not your turn". Either I haven't found the option to turn this on yet, or it'd be our task to create a game controller logic around it.
An image recognition app that lets you hold your smartphone-camera over the Go-Board and it recognises the state of the board and converts it to some simple string that can be used as input for our program ๐ค
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.