/usr/share/doc/uligo/manual.html is in uligo 0.3-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | <div style="width:600px">
<h1>uliGo Documentation</h1>
<p>
This is the documentation for uliGo 0.3 - a program to practice Go problems.
It was written by Ulrich Goertz (<a href="mailto:u@g0ertz.de">u@g0ertz.de</a>).
uliGo is published under the GNU General Public License (see the
file 'gpl.txt' or look at
<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>).
This program comes WITHOUT ANY WARRANTY.</p>
<hr>
<h2>Contents:</h2>
<ul>
<li> <a href="#gettingstarted">Getting Started</a>
<li> <a href="#problems">Solving problems</a>
<li> <a href="#stopclock">The Stop Clock</a>
<li> <a href="#orderofproblems">The Order of Problems</a>
<li> <a href="#ownproblemdatabase">Using Your Own Problem Database</a>
<li> <a href="#replaygames">Replaing games ("guess next move")</a>
<li> <a href="#menu">The Menu</a>
<li> <a href="#miscellaneous">Miscellaneous</a>
<li> <a href="#installation">Installation</a>
<li> <a href="#history">History</a>
</ul>
<h2><a name="gettingstarted">Getting started:</a></h2>
<p>
From now on I assume that you installed the program, and that
the main window pops up when you start it. (Otherwise, read the
section about <a href="#installation">installing uliGo</a> first.)</p>
<p>
The first thing you have to do is to load a problem collection.
Some example collections come with uliGo; see below how you
can create your own ones. So, go to the 'File' menu, and select 'Open problem collection'.
Then choose one of the sgf files that you are shown (they are in the 'sgf'
subdirectory which should automatically be selected).
Later, the program automatically loads the collection you used last.
Of course you can always load another collection with the 'Open problem collection'
command in the File menu.</p>
<p>
I think that the user interface is pretty self-explanatory,
so I suggest that you just play around a bit with it:
press the right arrow to see the first problem. The problem (randomly
chosen from the database) will be displayed, the stop clock
will be started (by default you have 2 min 30 sec to find the
complete answer), and you can play your move. The indicator above the
clock (and the 'cursor') shows whose turn it is. After you
enter your move, the program automatically replies (unless
your suggested move was wrong and no refutation is contained
in the database). Then enter the next move ... when the correct
solution is reached, the program shows a 'solved' indicator on the left.
After entering a wrong move, you can still try to solve the
problem, but you cannot get credit for it anymore, of course;
instead of the green "solved" you will see a blue
one when you get to a correct solution (similarly after
using undo, the 'show solution' mode or the 'try variation' mode).</p>
<p>
With the right arrow you can go to the next problem (this works at
any stage). Note that the arrow buttons do not serve to navigate within the SGF file
(use UNDO and HINT, respectively, to do that), but to go to the next problem, or
back to the previous one.</p>
<p>Alternatively, if you choose 'Replay game', you can load any SGF file, and
replay it by <a href="#replaygames">guessing the next move</a>. </p>
<h2><a name="problems">Solving problems</a></h2>
<h4>Next Problem</h4>
<p>
<img src="right.gif" align=RIGHT>
This button discards the current problem, and shows the next one.
This works at any stage, no matter if you solved the current problem
correctly or not, or if you tried some variation etc.
Of course, some problem collection must be open; otherwise nothing
happens.</p>
<h4>Previous problem</h4>
<p>
<img src="left.gif" align=RIGHT>
With this button, you can go back to the previous problem. Clicking it more than once goes back further,
like with the 'back' button in a web browser.
Note though that you can't go back and forth: the 'next' button will not go back to the problem you came
from, but will give you a new problem.</p>
<h4>Restart problem</h4>
<p><img src="reload.gif" align=RIGHT>
Go back to the beginning of the problem, and start over.
If you are at the beginning of the problem already,
this sets up the problem again at a (possibly) different position and with different colors.</p>
<h4>Hint</h4>
<p><img src="hint.gif" align=RIGHT>
Give a hint, i.e. show the next move (and the answer). Using the Hint button results in
this problem not being counted in the statistics, i.e. it is neither a wrong nor a correct answer.</p>
<h4>Show Solution</h4>
<p><img src="showsol.gif" align=RIGHT>
This shows a solution of the current problem. (The button is
disabled if you already solved the problem correctly yourself.)
You can choose between two modes for displaying the solution
(in the Options menu: 'Show solution mode'):</p>
<ul>
<li>animate solution: the moves of the solution are played out.
Choose the speed in the Options menu. If there are several correct
solutions, one is chosen randomly.
<li> navigate solution: You can 'navigate' the underlying SGF file
with the correct and wrong variations yourself. The possible
variations at a given move are marked by green (correct),
red (wrong) or blue (moves of the opponent) markers. Just click
on one of them to choose that variation. With the Undo button
you can undo the last move. If only red markers are displayed,
you cannot reach the correct resolution from this point anymore -
you went wrong earlier. Use the Undo button to go back until
a green marker appears.
</ul>
<p>Using the Show Solution button results in
this problem not being counted in the statistics, i.e. it is neither a wrong nor a correct answer.
</p>
<h4>Try variation</h4>
<p><img src="tryvar.gif" align=RIGHT>
At any point, you can press this button, and then play out some
variation of your own, e.g. to convince yourself that/why something
does not work. Use the Undo button to undo a move. As long as
you are in the 'Try variation' mode, the 'Show solution' mode
is disabled - it wouldn't make sense to display the solution with
your additional stones on the board. Press 'Try variation' again
to leave this mode and remove all the stones of your variation.
Once you enter this mode, you cannot get any credit for the current
problem anymore.</p>
<h4>Undo</h4>
<p><img src="undo.gif" align=RIGHT>
With this button you can undo the last two moves (the answer to your
last move and your last move) or the last move (if there was no
answer to your last move or in the Show solution/navigate mode
or in 'Try variation' mode).
If you use the undo feature, you cannot get any credit for the
current problem anymore.</p>
<h2><a name="stopclock">The stop clock</a></h2>
<p>
The clock starts when you press the 'next problem' button.
The default time is 150 seconds. You can change it by a
right mouse click on the clock or by choosing the 'change
clock settings' command in the options menu. This only works
when the clock is not running.</p>
<p>
Set the clock to 0 seconds to turn it off.</p>
<p>
When the time for the current problem is over, it is counted
as a wrong answer.</p>
<h2><a name="orderofproblems">How the program chooses the next problem from the database
(in random order mode)</a></h2>
<p>
Apart from the database, the program maintains a list of all
problems, together with information how often each problem
has been asked already, and with which results (this list
is stored in the xyz.dat file, where xyz is the name of the
SGF file).</p>
<p>
When you request the next problem, a problem is chosen
randomly from the first half of the list; problems from
the first third are a little bit more likely to be chosen
then others.</p>
<p>
When you answer a problem correctly, it will be moved to
the very end of the list. So it will take some time until
that problem can come up again. When you give a wrong answer,
the problem will be moved to a random location in the
second half (more precisely: in the 4th sixth) of the list;
so this problem cannot appear again immediately, but it
could after a relatively short time, and the more problems you
answer correctly, the more likely it is that you will asked
problems that you got wrong once for a second time.</p>
<p>
You can erase the information on your previous answers by
deleting the .dat file corresponding to a database. A new
.dat file (in which the order of problems is that of the
SGF file) will be created when you open the database.</p>
<p>
(In case you installed uliGo system-wide under Unix, the
.dat files are in the .uligo subdirectory of your home
directory. See the file install.txt for more details.)</p>
<h2><a name="ownproblemdatabase">Using your own problem database</a></h2>
<p>
The format used for the problem database is just the SGF format.
So in order to make your own database, just put a bunch of SGF
games in one single file. Some conventions (explained below)
have to be followed, but I think they are much or less
common sense. So probably you can just enter a problem
into any SGF editor, and everything will work.</p>
<p>
The following conventions have to be satisfied: </p>
<ul>
<li> The first node(s) of the SGF file may contain anything. If
the first node contains a GN[gamename] item, the game name is
displayed. Besides that the program ignores the nodes until
a node with an AB[] (place black stone) and/or AW[] (place white stone)
item comes up. All other AB's and AW's have to follow this node
without any interruption (the program gets confused if there is
an empty node in between). After that, the program expects
nodes with a B[] ('play black stone') or W[] ('play white stone')
item, and they must alternate properly. Two black plays in a row,
for instance, are not allowed.
<li> If you want to have 'wrong variations' in your problems (as
a refutation to some answer), the first node of that variation has
to contain a WV ('Wrong Variation', this is not an official SGF tag)
item or a TR[] item ('triangle label').
The triangle label option is there in order to make it
easier for you to edit problems with an arbitrary SGF editor;
just place triangle labels on the first move of a wrong variation.
Of course, that also means that no other triangle labels should
appear in the SGF files. (Other labels may appear, but are ignored
at the moment.)
<li> You can insert a general comment about the collection which
is displayed after the file is loaded, but before you look at
the first problem. Just place it at the very beginning of the
SGF file. Anything before the first '(' is considered as a general
comment. The only restriction is that your comment must not
contain a '('.
</ul>
<p>
One final remark: since every move that is not in the SGF file
is considered wrong, it is desirable to put every correct
solution into the file. Unfortunately, it is easy to miss
some alternative moves, especially after some moves have already
been played. Certainly there are some correct alternatives
missing in the problems that come with uliGo; so don't
take it too seriously if your answer is counted as wrong
although it is right ...</p>
<h2><a name="replaygames">Replaying games ("guess next move")</a></h2>
<p>
One fun way to study go is to replay professional games by guessing the
next move. You can load an SGF file with "Replay game" in the File menu. The
stop clock will then be replaced by a few buttons and a frame with a small
"go board".</p>
<p>
With the buttons, you can choose if you want to guess only black or only white
moves, or both. Clicks on the board will be interpreted as guesses - if
you managed to guess the next
move in the current SGF file, that move is played; otherwise no stone is
placed on the board.</p>
<p>
In the frame below the buttons you get some feedback on your guesses. If your
guess is right, it displays a green square (and the move is played on the
board). If the guess is wrong, it displays a red rectangle; the rectangle is
roughly centered at the position of the next move, and the closer your
guess was, the smaller, and more accurately positioned is that rectangle.
Furthermore the number of correct guesses and the number of all guesses,
as well as the success percentage are given.</p>
<p>
If you just can't find the next move, you can always use the
'HINT' button, and the move will be played out. You can restart the game
with the middle button in the first row. </p>
<h2><a name="menu">The menu</a></h2>
<h4>File - Open</h4>
<p>
Load a new problem database. A database just consists of
several SGF files. Some example databases are included in
the uliGo distribution. See below for more information how
to create your own databases.</p>
<h4>File - Statistics</h4>
<p>
Open the statistics window. It shows the name of the
current database, how many problems are in it, how many problems
the program has asked you to answer, and how many right/wrong
answers you have given.</p>
<h4>File - Clear Statistics</h4>
<p>Delete all information about problems done so far, and about correct and
wrong answers, and reload the problem collection from disk. In particular,
this should be used after making changes to the SGF file with
your problem collection.
<h4>File - Exit</h4>
<p>
Quit the program.</p>
<h4>Options - Fuzzy stone placement</h4>
<p>
In order to make the board and stones look more like 'in real
life', by default the stones are not placed precisely on the
intersections, but by a small, random amount off.
On a smaller board this doesn't well (and maybe some people
don't like it at all?), so you can disable this fuzzy placement.</p>
<h4>Options - Shaded stone mouse pointer</h4>
<p>
Disables the shaded stone cursor which shows where the next
move would be if you clicked at the current position.</p>
<h4>Options - Allow color switch</h4>
<p>
In order to make sure that you don't just learn one particular
problem, but rather a shape, uliGo randomly alters the position
of the problem on the go board, and also the color of the stones.
Because the latter could cause problems if your database contains
comments referring to the colors ('good for black', 'white to move'),
you can force uliGo to use the colors of the SGF file by disabling
this option.</p>
<h4>Options - Allow mirroring/rotating</h4>
<p>
With this checkbutton, you can switch off the automatical
mirroring/rotating of the problems. That might be useful,
for example, if there are comments referring to the "upper
left" or the "right side".</p>
<h4>Options - Show solution mode</h4>
<p>
Swich between animate and navigate mode. See the description
of the 'Show solution' button above.</p>
<h4>Options - Replay speed</h4>
<p>
Choose the speed for replaying the solution (in animate mode).</p>
<h4>Options - Change clock settings</h4>
<p>
Change the maximal time for solving a problem. You can achieve
the same by right clicking on the clock. (Also see below: The
stop clock)</p>
<h4>Options - Wrong variations</h4>
This determines what uliGo does with 'wrong variations', i.e. with wrong answers
to which a refutation is given in the SGF file. You can choose if uliGo should
tell you your move was wrong immediately when entering the variation, or only at the end of the refutation,
or if uliGo should not descend into wrong variations at all, i.e.
just show that the move was wrong and take it back.
<h4>Options - Random/sequential order mode</h4>
<p>
Choose if the problems should be presented in</p>
<ul>
<li> random order: here, the problem is basically chosen at random,
but problems that you have been asked already are less likely
to be chosen, especially if your answer was correct.
(See below for more details.)
<li> sequential order (keep track of solutions): The program
maintains a list of all problems in the SGF file; in this
mode, it always presents the first problem from that list.
If you solve the problem, it is moved to the end of the list;
if your answer is wrong, it is moved somewhere to the second
half of the list (so it will reappear sooner).
<li> sequential order (don't record results): In this mode,
the problems are presented in the same order as in the
SGF file. Correct or wrong answers are not recorded in
any way. You can specify the starting point. If you don't
specify it (or if the entry is invalid, e.g. not an integer),
it starts with the first problem in the SGF file.
</ul>
<p>
The mode, together with the current position in 'sequential
order, don't record results' mode, is stored in the .dat file;
so basically each problem collection has its own mode.
If you check the "use as default" option, then the current
mode will be chosen for other collections which do not yet
have a .dat file (i.e. you use then for the first time)
or have a .dat file from version 0.1.</p>
<h4>Options - Use 3D stones</h4>
Toggle the use of the more beautiful 3D stones versus flat stones.
The 3D stones were provided by Patrice Fontaine. (Thank you!)
<h4>Help - About</h4>
<p>
Some basic information about uliGo.</p>
<h4>Help - Documentation</h4>
<p>
Open this documentation in a web browser.</p>
<h4>Help - License</h4>
<p>
The uliGo license.</p>
<h2><a name="miscellaneous">Miscellaneous</a></h2>
<p>
That's it for the moment, I think. Feel free to contact me (at
uligo@g0ertz.de) if you have any questions, or - in particular -
if you find any bugs in the program.</p>
<h2><a name="installation">Installation</a></h2>
<p>The program is written in <a href="http://www.python.org/">Python</a>,
a high-level interpreted programming
language. If you are using Windows, you can either use the uliGo installer
which contains everything you need to run uliGo, or you install Python separately.
On other systems, you need to install Python before you
can run uliGo. Any version better than 2.0 should do; I tested
the program with Python 2.0, 2.1 and 2.2. If you have to install
Python, you should get the current version 2.2.
<h3>Windows</h3>
<p>Te easiest way is to use the installer. Since it contains the Python interpreter, there is no need to install
Python separately. </p>
<p>
If you want to install Python separately, download the Python installer for Windows
from the <a href="http://www.python.org/">Python website</a>. It will be very easy to install it.
Then download the uligo03-win.zip file and unpack it. You should then be able to run uliGo
by double-clicking the "uligo.pyw" file, or from the command line with "c:\python22\python uligo.pyw".</p>
<h3>Linux/Unix</h3>
<p>
It is likely that Python is already included
in your distribution. It is also easy to build it yourself with the
source from the Python website. But be sure to install
the Tkinter module which is needed for the GUI, too; look at the
in the README file coming with Python for instructions how to do that.</p>
<p>
Once you have Python working, just download and unpack the
uliGo file (uligo03.tar.gz). It will create
a subdirectory called uligo03 in the directory where you unzip
it, and all files needed for uliGo will be placed in that
subdirectory. Then just start uligo.py:
change into the corresponding directory,
and type 'python uligo.py'. (You can also make 'uligo.py'
executable, possibly change the path in its first line to
point to your Python installation, and run it as 'uligo.py'.)</p>
<p>
You can also install uliGo system-wide; see below.</p>
<h3>Other operating systems</h3>
<p>
Python is available for many operating systems, so you should also be able to run
uliGo. See the <a href="http://www.python.org/">Python website</a> for more
information.</p>
<h3>Upgrade from uliGo 0.1, 0.2</h3>
<p>
Basically, you should just install uliGo 0.3 from scratch,
and delete the old version (Make sure that you don't delete any sgf files
with problems ...). In particular, you should not use
the files uligo.def and uligo.opt from version 0.1 or 0.2 with
version 0.3 (these files contain the default problem collection
and the saved options, respectively).</p>
<p>
You can use the .dat files from uliGo 0.1, though (these files
contain the information about right/wrong answers etc.; for
each SGF file that you used with uliGo there is a corresponding
.dat file). Just copy the .dat files from the sgf subdirectory
of uligo01 to the sgf subdirectory of uligo03. (In case you
installed uliGo system-wide under Unix, it is slightly more
complicated; please see below.)</p>
<h3>Systemwide installation under Unix/Linux</h3>
<p>
To install uligGo system-wide (in /usr/local/share, for instance),
proceed as follows:</p>
<p>
Put the uliGo files in /usr/local/share/uligo03 (if you put them
somewhere else, you have to adapt the unixinst.py script
accordingly).</p>
<p>
Carefully read, and -if necessary- edit the script unixinst.py .
(I think that you probably will not want to change much.)
Basically, the unixinst.py script writes a 'global' uligo.def
file (in the uligo03 directory) which tells uligo to look
for individual .def files (in $HOME/.uligo ) when it is
started. So for every user who uses uligo, a subdirectory
called .uligo will be created in the user's home directory.
In this directory, the individual .def file (which stores
the path and name of the SGF file used last), the .opt
file (which stored the saved options), and the .dat files
(which store the number of correct/wrong answers for
each problem in the corresponding SGF file) are stored.
In order to avoid name conflicts between .dat files for
.sgf files in different directories, the path is shadowed
in the .uligo directory: for a .sgf file in
/usr/local/share/uligo/sgf, for example, the corresponding
.dat file is in $HOME/.uligo/usr/local/share/uligo/sgf.</p>
<p>
Furthermore the unixinst.py script creates a link
in /usr/local/bin, pointing to uligo.py.</p>
<p>
After you edited the unixinst.py script, execute it with
'python unixinst.py'. The only other thing you might have
to do (if your python interpreter is not in /usr/bin),
is to change the very first line of the file uligo.py,
which must contain the location of the python interpreter,
so that uligo can be started by 'uligo.py'.</p>
<h2><a name="history">History</a></h2>
<table>
<tr>
<td>May 2003:</td><td>uliGo 0.3, with a few new features, and a Windows installer.</td>
</tr><tr>
<td>June 2001:</td><td> uliGo 0.2: some minor bugfixes, and the option
to change the order in which the problems are
presented (random vs. sequential)</td>
</tr>
<tr>
<td>May 2001:</td><td>uliGo 0.1 is published.</td>
</tr>
<tr>
<td>April 2001:</td><td>Started writing uliGo.</td>
</tr>
</table>
</div>
|