It might be worth the effort to implement Go Text Protocol (http://www.lysator.liu.se/~gunnar/gtp/), just in case you're having trouble finding people to play with.
Anyway, nice work. fhs 2009/8/31 Akshat Kumar <[email protected]>: > With the hopes of playing Go amongst > fellow Plan 9 users, I've written a little > filesystem[1] which can currently be > used for any two-player turn-based > games. > > I'm currently working on Paurea's > wonderful goban code, to implement > support for reading from and writing to > files, so that we have a working > interface to use. > I also have plans to add the same > ability to Mirtchovski's port of GNU Go, > so that the antisocial community can > play amongst themselves (or oneself). > > The filesystem is meant to simulate > a proper game server, through basic > file and permissions operations. > > Creating a directory in the root of the fs > is equivalent to a "game room". The fs > automatically creates two files: 'W' and > 'B' under the newly created dir, which > correspond, respectively, to the positional > data of "white" and "black" players. > The files, as well as the directory, have > uid and gid of the user who created > them. When that user wants to play > against someone, they set the gid of > either 'W' or 'B' to their opponent's uname. > To this effect, both files are mode 464. > Both files block until new data is written. > The fs implements no formatting restrictions > to data -- it is left up to clients to agree on > a format and use it for the duration of a game. > (Oh what fun it might be to map the operations > of a Chess game to that of Go....) > In this way, the fs implements only one real > "rule", which is general enough for any sort of > game (in this class): once either 'W' or 'B' is > written, a "dirty" flag is set on the file, so it > may not again be written to, until the other file > has been written. > > There are a few things left to do still, and they > are briefly documented in the NOTES[2] file. > > I crave feedback, so please do not hesitate. > Programming suggestions, fs implementations, > and the like, all more than welcome. Privately, > or publicly. > > > Best, > ak > > [1] The source can be found in > /n/sources/contrib/akumar/α/gofs > > [2] /n/sources/contrib/akumar/α/gofs/NOTES > > For convenience, I've attached just the gofs > source file to this mail. Let me know if this is > undesirable. >
