<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!-- Define an entity for your application if it is not part of KDE
       CVS -->
  <!ENTITY kigo "Kigo">
  <!ENTITY kappname "&kigo;">
  <!ENTITY package "kdegames"><!-- kdebase, kdeadmin, etc.  Leave
                                     this unchanged if your
                                     application is not maintained in KDE CVS -->
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE">
]>
<!-- ................................................................ -->

<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>2010-01-27</date>
<releaseinfo>0.5.6</releaseinfo>

<abstract>
	<para>&kigo; is an open-source implementation of the popular Go game (also known as Weiqi).</para>
</abstract>
<keywordset>
	<keyword>KDE</keyword>
	<keyword>kdegames</keyword> <!-- do not change this! -->
	<keyword>game</keyword> <!-- do not change this! -->
	<keyword>kigo</keyword><!--Application name goes here-->
<!-- Game genre. Use as many as necessary. Available game types are: Arcade, Board, Card, Dice, Toys, Logic, Strategy.-->
	<keyword>logic</keyword>
	<keyword>board</keyword>
<!--Number of possible players. It can be: One, Two,..., Multiplayer-->
	<keyword>one player</keyword>
	<keyword>two players</keyword>
</keywordset>
</bookinfo>

<!-- The contents of the documentation begin here.  Label
each chapter so with the id attribute. This is necessary for two reasons: it
allows you to easily reference the chapter from other chapters of your
document, and if there is no ID, the name of the generated HTML files will vary
from time to time making it hard to manage for maintainers and for the CVS
system. Any chapter labelled (OPTIONAL) may be left out at the author's
discretion. Other chapters should not be left out in order to maintain a
consistent documentation style across all KDE apps. -->

<chapter id="introduction">
    <title>Introduction</title>
	<note><title>Gametype:</title><para>Logic, Board</para></note><!-- Game genre. Use as many as necessary. Available game types are: Arcade, Board, Card, Dice, Toys, Logic, Strategy.-->
	<note><title>Number of possible players:</title><para>Two</para></note><!--Number of possible players. It can be: One, Two,..., Multiplayer-->
	<para>&kigo; is an open-source implementation of the popular Go game (also known as Weiqi).</para>
	<para>
	Go is a strategic board game for two players. It is also known as igo (Japanese), weiqi or wei ch'i (Chinese) or baduk (Korean). Go 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>
<!-- The introduction chapter contains a brief introduction for the
application that explains what it does and where to report
problems. Basically a long version of the abstract.  Don't include a
revision history. (see installation appendix comment) -->
</chapter>

<chapter id="howto">
    <title>How to Play</title> <!-- do not change this! -->
<!--IMPORTANT: If the game has no defined objective, please remove the below line.-->
	<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><!--Describe the objective of the game.-->
    <sect1 id="starting">
    <title>Starting a Game</title>
<!--How to play description. Don't be to specific on rules as they have a separate section in this document-->
	<para>When you have started &kappname; you have two options to play the wonderful game of Go. 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 &kappname; 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 <guimenuitem>Start Game</guimenuitem> from the <guimenu>Game</guimenu> menu, click on <guibutton>Start Game</guibutton> in the <quote>Game setup</quote> dock widget or by simply pressing the key <keycap>S</keycap>.
      </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 unﬁnished game you can simply choose the <guimenuitem>Load...</guimenuitem> option in the <guimenu>Game</guimenu> menu (the menu is shown in the screenshot above). A ﬁle chooser should now pop up, use it to select and load the desired savegame ﬁle.
      </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 Go games or saved games
uploaded by other users from the internet. Just click the <guimenuitem>Get More
Games...</guimenuitem> in the <guimenu>Game</guimenu> menu. 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 ﬁrst round of Go. If you are not familiar with the rules, we recommend reading the corresponding <ulink url="http://en.wikipedia.org/wiki/Go_game">Wikipedia article</ulink> or take <ulink url=" http://playgo.to/interactive/">The Interactive Way To Go</ulink> from Hiroki Mori.
      </para>

      <para>
      Making a move is simple, just click on one of the intersections on the Go 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 ﬁnished. Note that ending a Go 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 entering the <guimenu>Game</guimenu> menu and choose the <guimenuitem>Save</guimenuitem> 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 ﬁeld 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>Go 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> <!-- do not change this! -->
<sect1 id="menus">
<title>The &kappname; Menues</title>
<para>&kappname; has a default &kde; game menues, except for the following items:</para>
		<variablelist>
			<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 standard &kde; KNewStuff dialog to load other users' saved games.</action></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 Go game is always a cooperative step.</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-hide-docker">
				<term><menuchoice>
					<guimenu>Settings</guimenu>
					<guisubmenu>Dockers</guisubmenu>
					<guimenuitem>Moves</guimenuitem>
				</menuchoice></term>
				<listitem><para>Shows or hides the Moves sidebar.</para></listitem>
			</varlistentry>
			<varlistentry id="settings-menu-settings">
				<term><menuchoice>
					<guimenu>Settings</guimenu>
					<guimenuitem>Configure &kappname;...</guimenuitem>
				</menuchoice></term>
				<listitem><para><action>Opens a dialog to configure &kappname;.</action> See <link linkend="configuration">Game Configuration</link> section for details.</para></listitem>
			</varlistentry>
		</variablelist>
</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>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?</entry>
    <entry>
    <keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo>
    </entry>
  </row>
  </tbody>
  </tgroup>
  </table>
</sect1>
</chapter>

<chapter id="configuration">
<title>Game Configuration</title> <!-- do not change this! -->
<!--This section describes configuration GUI. If your game is configured using menubar exclusively, please remove this section.-->
  <para>
  If you want to change how &kappname; is conﬁgured you can do that by navigating to the <guimenu>Settings</guimenu> menu and clicking on the <guimenuitem>Conﬁgure &kappname;...</guimenuitem> action.
  </para>

  <para>
  You should now see the conﬁguration 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>
  &kappname; is extremely ﬂexible 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 diﬀerent actions accessible there. To do this just click on the <guimenu>Settings</guimenu> menu and choose <guimenuitem>Configure toolbars...</guimenuitem>. The same is possible for all shortcuts in the game. If you want to have the maximum space available for the game ﬁeld 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 Go engine backend conﬁguration. &kappname; 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 ﬁne. If this is not the case or if you want to use a diﬀerent Go backend, you should install a diﬀerent Go engine which can speak the GnuGo Text Procotol (GTP) and set its command and parameters accordingly. Details about this step should be found in the corresponding Go engine documentation.
    </para>
    <screenshot>
    <screeninfo>General conﬁguration</screeninfo>
    <mediaobject>
    <imageobject><imagedata format="PNG" fileref="setup-general.png"/></imageobject>
    <textobject><phrase>General Conﬁguration.</phrase></textobject>
    </mediaobject>
    </screenshot>
    </sect1>
    <sect1 id="configuration-theme">
    <title>Theme Configuration</title>
    <para>
    This page will allow you to change the theme &kappname; uses.
    </para>
    <screenshot>
    <screeninfo>Configure &kappname; - 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">

<!-- Include credits for the programmers, documentation writers, and
contributors here. The license for your software should then be included below
the credits with a reference to the appropriate license file included in the KDE
distribution. -->

<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;               <!-- FDL: do not remove -->

<!-- Determine which license your application is licensed under,
     and delete all the remaining licenses below:

     (NOTE:  All documentation are licensed under the FDL,
     regardless of what license the application uses) -->

&underGPL;           <!-- GPL License -->

</chapter>

<appendix id="installation">
<title>Installation</title>

<sect1 id="getting-kapp">
<title>How to obtain &kigo;</title>

<!-- This first entity contains boiler plate for applications that are
part of KDE CVS.  You should remove it if you are releasing your
application -->

&install.intro.documentation;

&install.compile.documentation;

</sect1>

<sect1 id="compilation">
<title>Compilation and Installation</title>

<!-- This entity contains the boilerplate text for standard -->
<!-- compilation instructions.  If your application requires any -->
<!-- special handling, remove it, and replace with your own text. -->

&install.compile.documentation;

</sect1>

</appendix>

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

