I’ll do my own research but if you have any resources or advice to give me I’m interested, eventually I want to be able to make a 3D Go game and other variants.
What do do intend to use it for? To view or edit SGF files or to have players play a game remotely?
Also, what is your current level of programming experience? And why python?
I made a very simple Go board in Processing before. It has both a java and python scripting language Overview \ Processing.org .
It just does everything in a main while loop and it’s pretty easy to draw graphics to the screen.
Other than that I guess to just make a “Go board” you just need some lists or arrays and few functions to update the elements of the arrays, whether with a mouse click or with user input from a terminal for example. It can be a bit more complicated to implement a superko rule, so possibly Japanese rules might be simpler to start with.
Some other things that could be useful:
-
GitHub - eagleflo/goban: A go board made with Python and pygame. – apparently the first thing that came up for me when googling “Go board python”, supposedly made with pygame. I don’t know if it’s any good, if it works etc, but sometimes it’s nice to eyeball the amount of code one might need to write to get started.
-
GitHub - nikzaugg/Go-Game: Simple implementation of the Japanese board game Go – Similarly just Googling to see what other people have done, uses pyglet library apparently.
-
GitHub - lxucs/go-game-easy: A simplified version of Go game in Python, with AI agents built-in and GUI to play. – I didn’t read all of its dependencies.
-
Manning | Deep Learning and the Game of Go I had a friend who started using this book to write a go program and an ai, but I think gave up on it after a while and moved onto writing an ai for a talf game instead, but I think it was reasonable and used python. It does discuss how to implement things like the superko rule etc. I can’t say if it’s worth the price though.
Maybe it’s helpful to someone
to play it and maybe to connect an IA to it.
i’m beginner, Python because it’s the langage iknow the most and because i can do machine learning with it. (after learn how to build it)
Thanks you i will check your links tomorrow, it’s 00:18 here in France so i will go sleep.
There are a couple of distinct parts to that, some of which are (much) more difficult than others.
- Implement a board that enforces the rules of the game. Capturing in particular is the most interesting rule to implement.
- Implement a user interface to allow local players to play on the same computer as the program.
- Implement scoring the game, including a user interface for that.
- Implement a go server with a web interface or mobile app allowing remote players to play and score a game.
- Implement a go playing program.
Of these parts, I would say that 5 is (by far) the most difficult, but depending on your existing expertise, 1 and 4 would also be fairly challenging. I think 2 and 3 are relatively easy, but good user interfaces require somewhat different skills than back-end programming.
If you are a new to programming (and maybe also to go) all of those parts are going to be very difficult to do on your own from scratch. Chances are that you’ll get stuck almost right away.
So it would be a good idea to check out examples of how experienced programmers have implemented those parts. @shinuito offers some good starting points.