<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE">

  <!ENTITY gnugo "<application>&GNU; Go</application>">
  <!ENTITY kigo  "<application>Kigo</application>">
]>
<!-- ................................................................ -->

<book id="kigo" lang="&language;">
<bookinfo>
<title>The &kigo; Handbook</title>

<authorgroup>
	<author>
		<firstname></firstname>
		<surname>Sascha Peilicke</surname>
		<affiliation>
			<address>sasch.pe@gmx.de</address>
		</affiliation>
	</author>
	<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
	<year>2008-2010</year>
	<holder>Sascha Peilicke</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2021-07-01</date>
<releaseinfo>0.6.2 (KDE Gear 21.04)</releaseinfo>
<abstract>
	<para>&kigo; is an open-source implementation of the popular <literal>Go</literal> game (also known as <literal>Weiqi</literal>).</para>
</abstract>
<keywordset>
    <keyword>KDE</keyword>
    <keyword>kdegames</keyword>
    <keyword>game</keyword>
    <keyword>kigo</keyword>
    <keyword>logic</keyword>
    <keyword>board</keyword>
    <keyword>one player</keyword>
    <keyword>two players</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction">
    <title>Introduction</title>

    <note><title>Gametype:</title>
    <para>Logic, Board</para></note>

    <note><title>Number of possible players:</title>
    <para>Two</para></note>

    <para>
    &kigo; is an open-source implementation of the popular <literal>Go</literal> game (also known as Weiqi).
    </para>

    <para>
    <literal>Go</literal> is a strategic board game for two players. It is also known as <quote><literal>igo</literal></quote> (<foreignphrase lang="ja">囲碁</foreignphrase> in Japanese), <quote><literal>weiqi</literal></quote> or <quote><literal>wei ch'i</literal></quote> (<foreignphrase lang="zh">圍棋</foreignphrase> or <foreignphrase lang="zh">围棋</foreignphrase> in Chinese), or <quote><literal>baduk</literal></quote> (<foreignphrase lang="ko">바둑</foreignphrase> in Korean). <literal>Go</literal> is noted for being rich in strategic complexity despite its simple rules.
    </para>

    <para>
    The game is played by two players who alternately place black and white stones (playing pieces, now usually made of glass or plastic) on the vacant intersections of a grid of 19×19 lines (9x9 or 13x13 lines for easier flavors).
    </para>

</chapter>

<chapter id="howto">
    <title>How to Play</title>

    <note><title>Objective:</title>
    <para>The object of the game is to control a larger portion of the board than the opponent. A stone or a group of stones is captured and removed if it has no empty adjacent intersections, the result of being completely surrounded by stones of the opposing color.</para></note>

    <sect1 id="starting">
    <title>Starting a Game</title>

    <para>
    When you have started &kigo; you have two options to play the wonderful game of <literal>Go</literal>. You can either start a new game or continue an old one.
    </para>

    <sect2 id="new_game">
    <title>Setup a new game</title>

    <para>
    When you have started &kigo; you should see a screen similar to the one shown in screenshot below. There you can set up both the white and the black player’s name and the board size. You can decide if one or both players should be computers. If you decide to play against a computer you can also set its strength. If you want to start the game you can either select the <menuchoice><guimenu>Game</guimenu> <guimenuitem>New</guimenuitem></menuchoice> menu item, click on <guibutton>Start Game</guibutton> button in the <guilabel>Game setup</guilabel> dock widget or by simply pressing the <keycap>S</keycap> key.
    </para>

    <screenshot>
        <screeninfo>New game screen</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="start-new-game.png"/></imageobject>
            <textobject><phrase>New Game Screen.</phrase></textobject>
        </mediaobject>
    </screenshot>
    </sect2>

    <sect2 id="load_game">
    <title>Setup a loaded game</title>

    <para>
    If you decide to continue a previously unfinished game you can simply choose the <menuchoice><guimenu>Game</guimenu> <guimenuitem>Load…</guimenuitem></menuchoice> menu item (the menu is shown in the screenshot above). A file chooser should now pop up, use it to select and load the desired savegame file.
    </para>

    <para>
    Now you should see a screen similar to the one shown on the screenshot below. If you do not want to continue with the last move made, you can revert as many moves as you like. You should see the board changing as you change the current move number. The setup screen also presents a lot of additional information about the saved game.
    </para>

    <para>
    Just press <guibutton>Start Game</guibutton> to continue.
    </para>

    <screenshot>
        <screeninfo>Loaded game screen</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="start-loaded-game.png"/></imageobject>
            <textobject><phrase>Loaded Game Screen.</phrase></textobject>
        </mediaobject>
    </screenshot>

    <para>
    There is also the option to download history <literal>Go</literal> games or saved games uploaded by other users from the internet. Just click the <menuchoice><guimenu>Game</guimenu> <guimenuitem>Get More Games…</guimenuitem></menuchoice> menu item. You should then see a dialog which allows you to choose which content to download.
    </para>

    <screenshot>
        <screeninfo>Get new games</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="get-new-games.png"/></imageobject>
            <textobject><phrase>Get New Games Screen.</phrase></textobject>
        </mediaobject>
    </screenshot>

    </sect2>
    </sect1>

    <sect1 id="playing">
    <title>Playing a game</title>

    <para>
    Now you are ready to play your first round of <literal>Go</literal>. If you are not familiar with the rules, we recommend reading the corresponding <ulink url="https://en.wikipedia.org/wiki/Go_(game)">Wikipedia article</ulink> or take <ulink url="http://playgo.to/iwtg/en/">The Interactive Way To <literal>Go</literal></ulink> from Hiroki Mori.
    </para>

    <para>
    Making a move is simple, just click on one of the intersections on the <literal>Go</literal> board. You should see a little black point which shows you where your stone would land if you click.
    </para>

    <para>
    The current player can be determined by the cursor, which changes to a black or a white stone depending on which player is next.
    </para>

    <para>
    You can also check the game information which shows also the previous move and some statistics. A complete move history is also available. If you want to remember in which order the stones on the board where placed, just click the <guibutton>Show move numbers</guibutton> button. If you think that you can’t gain anything by placing another stone, just click <guibutton>Pass Move</guibutton> and let your opponent take his turn. If both players pass, the game can be finished. Note that ending a <literal>Go</literal> game is always a cooperative step!
    </para>

    <screenshot>
        <screeninfo>Playing a fresh game</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="play-game.png"/></imageobject>
            <textobject><phrase>Playing a Fresh Game.</phrase></textobject>
        </mediaobject>
    </screenshot>

    <para>
    Note that you can save the current game at any time. Do this by choosing the <menuchoice><guimenu>Game</guimenu> <guimenuitem>Save</guimenuitem></menuchoice> menu item.
    </para>

    <sect2 id="hint">
    <title>Getting a hint</title>

    <para>
    Sometimes it is diﬃcult to decide which move to make. If you want the computer to give you a little hint, just press the <guibutton>Hint</guibutton> button shown in the screenshot below. Now some transparent stones with a number on top should appear. These are actually your recommendations with a score. The score determines how good that move is. Feel free to click on any of the recommended moves or any other free field to make set your next stone.
    </para>

    <screenshot>
        <screeninfo> Getting a hint</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="hint.png"/></imageobject>
            <textobject><phrase>Getting a Hint.</phrase></textobject>
        </mediaobject>
    </screenshot>

    </sect2>
    </sect1>

    <sect1 id="strattips">
    <title>Strategies and Tips</title>

    <itemizedlist>
        <listitem><para><literal>Go</literal> is more about surrounding territory (empty space) than capturing your opponent's pieces.</para></listitem>
        <listitem><para>Territory is easiest to surround near the corners (on two sides) then near the edges (on three sides) and lastly in the center.</para></listitem>
        <listitem><para>At the start of the game, space your pieces out. Only fill in your fence-lines when your opponent starts to intrude</para></listitem>
        <listitem><para>Do not play unsupported stones right next to your opponent's stones when attacking.  They will tend to get swallowed and &gnugo; is very good at that. It is often better to attack indirectly.</para></listitem>
        <listitem><para>To avoid capture, a group of stones must have two <quote>eyes</quote> or be able to make them if attacked.  <quote>Eyes</quote> are disconnected spaces. Think of a doughnut with two holes. Your opponent can surround the outside, but cannot fill both holes at once.</para></listitem>
        <listitem><para>On the 19x19 board there are typically several territories being created, attacked or defended.  You have to fight several battles simultaneously. The strategy involves evaluating the strengths and weaknesses in various areas and allocating your moves between them.  Is it better to attack there or defend here?</para></listitem>
        <listitem><para>As the board fills up and the end-game approaches, it becomes important to play closer up, nibbling at your opponent's fences or reinforcing your own.  Small mistakes and omissions can become very costly.</para></listitem>
    </itemizedlist>

    </sect1>
</chapter>

<chapter id="interface"><title>Interface Overview</title>
    <sect1 id="menus">
    <title>The &kigo; Menus</title>
    <para>
    &kigo; has the following options:
    </para>

    <variablelist>

    <varlistentry id="game-menu-new">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>New</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Starts a new game.</action></para></listitem>
    </varlistentry>

    <varlistentry id="game-menu-load">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Load…</guimenuitem>
    </menuchoice></term>
    <listitem><para>Opens the Open File &kde; standard dialog, to open a <literal role="extension">.sgf</literal> file (&kigo; game file), which contains a saved game.</para></listitem>
    </varlistentry>

    <varlistentry  id="game-menu-get-more">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Get More Games…</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Opens <guilabel>Get Hot New Stuff</guilabel> dialog to load other users saved games.</action></para></listitem>
    </varlistentry>

    <varlistentry  id="game-menu-save">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Save</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Save</action> the current game.</para></listitem>
    </varlistentry>

    <varlistentry id="game-menu-start">
    <term><menuchoice>
    <shortcut><keycap>S</keycap></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Start Game</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Starts</action> the new or the loaded game.</para></listitem>
    </varlistentry>

    <varlistentry id="game-menu-finish">
    <term><menuchoice>
    <shortcut><keycap>F</keycap></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Finish Game</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Finishes</action> the current game. Remember that ending a <literal>Go</literal> game is always a cooperative step.</para></listitem>
    </varlistentry>

    <varlistentry id="game-menu-quit">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo></shortcut>
    <guimenu>Game</guimenu> <guimenuitem>Quit</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Quits</action> &kigo;.</para></listitem>
    </varlistentry>

    <varlistentry id="move-menu-undo">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut>
    <guimenu>Move</guimenu> <guimenuitem>Undo</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Undo</action> your last move.</para></listitem>
    </varlistentry>

    <varlistentry id="move-menu-redo">
    <term><menuchoice>
    <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut>
    <guimenu>Move</guimenu> <guimenuitem>Redo</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Redo</action> the move that was just undone by <guimenuitem>Undo</guimenuitem>.</para></listitem>
    </varlistentry>

    <varlistentry id="move-menu-pass">
    <term><menuchoice>
    <shortcut><keycap>P</keycap></shortcut>
    <guimenu>Move</guimenu> <guimenuitem>Pass Move</guimenuitem>
    </menuchoice></term>
    <listitem><para>Allows you to <action>pass</action> a move.</para></listitem>
    </varlistentry>

    <varlistentry id="move-menu-hint">
    <term><menuchoice>
    <shortcut><keycap>H</keycap></shortcut>
    <guimenu>Move</guimenu> <guimenuitem>Hint</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Gives a Hint</action> by showing the transparent stones with the score on them.</para></listitem>
    </varlistentry>

    <varlistentry id="move-menu-numbers">
    <term><menuchoice>
    <shortcut><keycap>N</keycap></shortcut>
    <guimenu>Move</guimenu> <guimenuitem>Show Move Numbers</guimenuitem>
    </menuchoice></term>
    <listitem><para><action>Toggles</action> move numbers visibility.</para></listitem>
    </varlistentry>

    <varlistentry id="settings-menu-info-docker">
    <term><menuchoice>
    <guimenu>Settings</guimenu> <guisubmenu>Dockers</guisubmenu> <guimenuitem>Information</guimenuitem>
    </menuchoice></term>
    <listitem><para>Shows or hides the <guilabel>Information</guilabel> sidebar.</para></listitem>
    </varlistentry>

    <varlistentry id="settings-menu-moves-docker">
    <term><menuchoice>
    <guimenu>Settings</guimenu> <guisubmenu>Dockers</guisubmenu> <guimenuitem>Moves</guimenuitem>
    </menuchoice></term>
    <listitem><para>Shows or hides the <guilabel>Moves</guilabel> sidebar.</para></listitem>
    </varlistentry>

    </variablelist>

    <para>
    Additionally &kigo; has the common &kde; <guimenu>Settings</guimenu> and <guimenu>Help</guimenu> menu items, for more information read the sections about the <ulink url="help:/fundamentals/menus.html#menus-settings">Settings Menu</ulink> and <ulink url="help:/fundamentals/menus.html#menus-help">Help Menu</ulink> of the &kde; Fundamentals.
    </para>

    </sect1>

    <sect1 id="keybindings">
    <title id="keybindings-title">Shortcuts</title>

    <para>The default shortcuts are:</para>

    <table>
        <title>Shortcuts</title>
        <tgroup cols="2">
        <tbody>
            <row>
                <entry>Finish the current game</entry>
                <entry><keycap>F</keycap></entry>
            </row>
            <row>
                <entry>Get new games uploaded by other users</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Help</entry>
                <entry><keycap>F1</keycap></entry>
            </row>
            <row>
                <entry>Load saved game</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Provide hints to possible moves</entry>
                <entry><keycap>H</keycap></entry>
            </row>
            <row>
                <entry>Pass a move</entry>
                <entry><keycap>P</keycap></entry>
            </row>
            <row>
                <entry>Quit</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Redo a move that was undone</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Save the current game</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Start a new game</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>Start new or loaded game</entry>
                <entry><keycap>S</keycap></entry>
            </row>
            <row>
                <entry>Toggle move numbers visibility</entry>
                <entry><keycap>N</keycap></entry>
            </row>
            <row>
                <entry>Undo your last move</entry>
                <entry>
                    <keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo>
                </entry>
            </row>
            <row>
                <entry>What's this? help</entry>
                <entry>
                    <keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo>
                </entry>
            </row>
        </tbody>
        </tgroup>
    </table>

    </sect1>
</chapter>

<chapter id="configuration">
    <title>Game Configuration</title>

    <para>
    If you want to change how &kigo; is configured you can do that by navigating to the <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure &kigo;…</guimenuitem></menuchoice> menu item.
    </para>

    <para>
    You should now see the configuration dialog as shown in the screenshot below. You can reach it also by pressing the key combination <keycombo>&Alt;<keycap>S</keycap></keycombo> followed by <keycombo>&Alt;<keycap>C</keycap></keycombo>.
    </para>

    <para>
    &kigo; is extremely flexible and can be customized as much as you like. You are able to change positions and size of all dock widgets next to the central play area. You can also customize the toolbar if you want to have different actions accessible there. To do this just choose the <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure Toolbars…</guimenuitem></menuchoice> menu item. The same is possible for all shortcuts in the game. If you want to have the maximum space available for the game field you can even hide the toolbar and most dock widgets in the <guimenu>Settings</guimenu> menu.
    </para>

    <sect1 id="genconig">
    <title>General Configuration</title>

    <para>
    The most important aspect here is the <literal>Go</literal> engine backend configuration. &kigo; needs a valid backend to function properly. As you can see in the screenshot below, it used &gnugo; by default. The little light next to the engine command shines green if everything works fine. If this is not the case or if you want to use a different <literal>Go</literal> backend, you should install a different <literal>Go</literal> engine which can speak the <literal>Go</literal> Text Protocol (<acronym>GTP</acronym>) and set its command and parameters accordingly. Details about this step should be found in the corresponding <literal>Go</literal> engine documentation.
    </para>

    <screenshot>
        <screeninfo>General configuration</screeninfo>
        <mediaobject>
            <imageobject><imagedata format="PNG" fileref="setup-general.png"/></imageobject>
            <textobject><phrase>General Configuration.</phrase></textobject>
        </mediaobject>
    </screenshot>

    </sect1>

    <sect1 id="configuration-theme">
    <title>Theme Configuration</title>

    <para>
    This page will allow you to change the theme &kigo; uses.
    </para>

    <screenshot>
        <screeninfo>Configure &kigo; - Themes</screeninfo>
        <mediaobject>
            <imageobject><imagedata fileref="setup-theme.png" format="PNG"/></imageobject>
            <textobject><phrase>Theme Configuration</phrase></textobject>
        </mediaobject>
    </screenshot>

    </sect1>
</chapter>

<chapter id="credits">
    <title>Credits and License</title>

    <para>
    &kigo;
    </para>

    <para>
    Program copyright 2009 Sascha Peilicke <email>sasch.pe@gmx.de</email>
    </para>

    <para>
    Documentation Copyright &copy; 2009 Sascha Peilicke <email>sasch.pe@gmx.de</email>
    </para>

    <para>
    Documentation editing and Docbook conversion by Yuri Chornoivan <email>yurchor@ukr.net</email>
    </para>

    <para>
    Default theme designed by Arturo Silva <email>jasilva28@gmail.com</email>
    </para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL;
&underGPL;

</chapter>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
sgml-general-insert-case: lower
End:
-->

