1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
|
gtkgo 0.0.10 - 05/17/99
Copyright (C) 1998, 1999 Norbert de Jonge
(hack@altavista.net)
- [CONTENTS] ------------------------------------------------------------------
1 ABOUT/HELP
2 LICENSE/DISCLAIMER
3 INSTALL
4 MAKING GO-COMPUTERS
5 FEEDBACK
6 TODO
- [1 ABOUT/HELP] --------------------------------------------------------------
[About]
The goal of the gtkgo project is to make a go game for both Linux and Windows,
that has skin support and can load computer scripts that can be made by users,
so that different go-computers can 'attack' each other or other users.
The gtkgo website can be found at http://gtkgo.netpedia.net or via
http://freshmeat.net. Read more about the SGF FF[4] save format at
http://www.sbox.tu-graz.ac.at/home/h/hollosi/sgf.
Go rules can be confusing. To be able to build very strong gtkgo go-computers
in the future, gtkgo does NOT rely on different rule sets (as most go programs
do). Instead, it uses the following static (Japanese/IGS-like) rules:
[Rules]
In gtkgo, two players (human player or go-computer) alternate in placing a
stone of their color on an empty intersection on a square board with 19x19
intersections (the weaker player always takes black and goes first). A player
may also pass (the game ends after two consecutive passes). Stones (or a group
of stones) that are surrounded, with no liberties on one of their sides (note
that diagonal points are no liberties) are captured and removed from the board.
It is not allowed to place a stone on a point with no liberties (suicide),
unless this will help you to capture stone(s) from your opponent. Repeats (ko)
are not allowed either. The placement of handicap stones (used to allow players
with different ranks to compete, the handicap is the number of ranks between
two players) is fixed.
[Scoring]
Scoring goes by territory: territory surrounded (not occupied) by your color
plus the prisoners you have captured. So, placing stones in your own territory
lessens your score. Points in an undecided situation (called seki) will be
counted (after removing dead stones, dead stones are stones that are not
functional on the board). White will get 5.5 score extra (called komi) since it
didn't start the game (0.5 in a handicapped game). Of course, the player with
the highest score wins.
[Ranks]
If I'm not mistaken, with go, there are two different series of ranks. The
amateur ranks: (Weak) 30 kyu ... 1 kyu 1 dan ... 6 dan (Strong)
and the professional ranks (professionals are almost always better than
amateurs, but some differences between the dans are just formal and make the
ranks even more confusing): (Weak) 1 dan ... 9 dan (Strong).
- [2 LICENSE/DISCLAIMER] ------------------------------------------------------
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this game; if not, write to the Free Software Foundation, Inc., 59 Temple Place
- Suite 330, Boston, MA 02111-1307, USA.
- [3 INSTALL] -----------------------------------------------------------------
Required:
* GTK+ 1.2.0+ <ftp://ftp.gtk.org>
* Imlib <http://www.labs.redhat.com/imlib>
Optional:
* Gnome 1.0.0+ <http://www.gnome.org>
* mpg123 <http://www-ti.informatik.uni-tuebingen.de/~hippm/mpg123.html>
% tar -zxvf gtkgo-0.0.10.tar.gz # unpack the sources
% cd gtkgo-0.0.10 # change to the toplevel directory
% ./configure # run the `configure' script
NOTE: use `./configure --disable-gnome' to disable Gnome.
% make # build gtkgo
[ Become root if necessary ]
% make install # install gtkgo
- [4 MAKING GO-COMPUTERS] -----------------------------------------------------
A new computer can be made by editing a new .gtkgo file in the computers
directory. When a computer has to make a new move, the selected .gtkgo script
will be parsed (character by character) by the computer. If the computer has
found a new move, the rest of the script will be ignored. The script commands
(all other characters in a script will be ignored):
z<a-y>/?<a-y>z Use this for the eye concept. This command can check, for all
points on the board, if two eyes in a connecting group can be
made. Take a look at the following block with characters:
abcde
fghij
klmno
pqrst
uvwxy
Each point on the board, checked by the computer, will be seen
as the 'g'. If all points before the '/' are empty and just ?
or less stones are needed to make all points after the ? be
occupied by your color, the computer will make it's next move
on the next point after the ? that is not yours yet. Note that
the computer will only do this if all points after the ? are
yours or empty. The sides of the board will be seen as your
color. But, if any of the characters after the ? is behind the
sides of the board, the computer will not do anything with the
current point (ignores it) and checks out the next point.
Good examples are zgi/1abcdefhjklnoz, zgi/1abdefhjklmnoz,
zgq/1abcfhklpruvwz, zgq/1abcfhlmpruvwz, zgi/1bcdefhjklmnz,
zgi/1abcdfhjlmnoz, zgq/1abfhklmprvwz, zgq/1bcfhklmpruvz,
zgm/1abfhklnqrsz, zgm/1abcfhilnrsz, zgm/1bcfhiklnqrz,
zhl/1cdgikmnpqrz, zhl/1bcdfgikmpqz and zhl/1bcfgikmnqrz
g<C/N>?<a/u/r/l> Check your last move and after that all points on the board
with your color (C) or your opponents last move and after that
all opponents points on the board (N) if they are part of a
group containing ? or more stones. If so, make your next move
above this point (a), under this point (u), at the right of
this point (r) or at the left of this point (l). a, u, r and l
may be used together. If you do so, all points will be tried
after each other, as long as no move can be made.
s<C/N>?<a/u/r/l> Check all points on the board with your color (C) or your
opponents color (N) for ? sides occupied. When found, make
your next move above this point (a), under this point (u),
at the right of this point (r) or at the left of this point
(r). Sides occupied returns the total of 'left occupied' (1),
'right occupied' (2), 'above occupied' (4) and 'under
occupied' (8). This way you can see which sides are free and
occupied. a, u, r and l may be used together. If you do so,
one of them will be chosen and used randomly.
l<a/u/r/l><C/N> Make next move above (a), under (u), at the right (r) or at
the left (l) of your last move (C) or your opponents last move
(N). a, u, r and l may be used together. If you do so, one of
them will be chosen and used randomly.
*?* Do ? only if you already made at least 25 moves during the
game.
!?! Do ? only if not in own territory (unless this is really
needed to stop an attack by the opponent).
.?. Do ? only if not in opponents territory.
%?% Do ? in 50% of all cases.
+?+ Do ? in 10% of all cases.
#?# ? is comment.
$?$ Do not make the next move during ? if this would be on a point
somewhere on the sides of the board.
E Pass if the opponent just passed and your score is higher.
f Make your next move on a random free point, which touches your
color diagonally just ones.
F Make next move on a random free point. All sides, also
diagonally, are unoccupied.
M Make next move on a random point, that touches at least one
point with your color.
m Make next move on a diagonal side of a stone of your color,
that touches the opponents color on one (or more) side and
doesn't touch a stone of your color anywhere (not even
diagonally).
X Make next move on a random free point, that is on (or on the
sides) of the square formed by the dots on the board.
P Pass.
- [5 FEEDBACK] ----------------------------------------------------------------
If gtkgo crashes, gets compilation errors or crashes while building, does not
work as the documentation says or just won't work like you want it to, send an
e-mail to <hack@altavista.net>. Make sure to describe exactly what actions
triggered the bug and the precise symptoms of the bug. For Linux also include:
`uname -a', `gcc -v', `gtk-config --version', `imlib-config --version' and
`gtkgo --version'. And for Windows also include: Windows version, processor
type, amount of available memory and `gtkgo --version'.
- [6 TODO] --------------------------------------------------------------------
First I want to add optional GMP use for Internet play and GMP program/device
support for white and/or black. Then I will continue to add better go-computer
scripts and script commands. I will also try to put all pixmaps for each skin
in one large png file and use gdk_draw on a gtk_drawing_area to draw the stones
on the board (then I can also add some animations and load sgf-files).
|