========================================= BKGO : A network Go game written in Java ========================================= by Karl Fogel and Ben Collins-Sussman Background ---------- Begun in Jan 1999. We'll say more later. Requirements ------------ You *must* have a Java 1.1 (or higher) runtime environment. That's it. This program was written on Linux 2.x, glibc, using blackdown.org's "green threads" port of JDK 1.1.7. But it is intended to be compatible with both Sun's java and all the free java implementations. As long as you have java 1.1, you should be set. To Compile ---------- We've included a Makefile that we use; it should work for you, assuming you have the JDK installed in /usr/local/jdk. The Makefile sets classpath like so: export CLASSPATH=.:/usr/local/jdk/lib/classes.zip:$CLASSPATH ("classes.zip" is the standard 1.1 base classes -- included for safety). Just type: make to build the application. To Play ------- 1. Set your CLASSPATH correctly (see above) 2. 'java bkgo' Alternatively, you can just type make run and the Makefile will take care of the CLASSPATH for you. You will be given the option to either create a server or connect to an existing server (as a player or observer.) Anyone (black, white, or observer) can discuss the game in the "chat" window provided, but only black and white can place stones. Have fun, and please send us feedback! Email bkgo-devel@red-bean.com. Anonymous CVS access -------------------- You can stay up-to-date with the latest developments by keeping a working copy of the bkgo CVS tree. This assumes you're reasonably familiar with CVS; if you're not, try http://www.cyclic.com for some links. To check out a working copy anonymously (you will have read-only access to the server), do this first: cvs -d :pserver:anonymous@cvs.red-bean.com:/usr/local/cvs login When prompted for a password, type "the key" (remember the space). Then check out the source tree with: cvs -d :pserver:anonymous@cvs.red-bean.com:/usr/local/cvs checkout bkgo Whenever you want to update from the master repository, just do this: cd bkgo cvs update That's it! ------------------------------------------------------------------- Notes on the source code: * Formatted according to the GNU coding standards, w/ two exceptions: * * 1. Method calls might have no space between the method's name and * the open paren of its argument list. Seeing "foo.method (x, y)" * seems shakier to us than "foo.method(x, y)", because the former * can look like a field reference rather than a method call if * you're just glancing at it quickly. On the other hand, we're * not being consistent; I think eventually it will all revert to * GNU C style, and then this comment can go away. * * * 2. Opening curly braces don't get their own lines when the body * of the block inside will be only one line long. Thus * * public void my_method (int foo) { * return (foo / bar); * } * * is okay, but if the body is two or more lines, then this way * * public void my_method (int foo) * { * bar = this.bar() / 2; * return (foo / bar); * } * * is preferred. * * * Comments about readability are welcome; I'm still suspicious of #1 * above, but don't like the alternatives much either. *