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

<book id="kdominate" lang="&language;">
<bookinfo>
	<title>The KDominate Handbook</title>
<authorgroup>
<author>
<firstname>Albert</firstname><surname>Vaca Cintora</surname>
<affiliation><address><email>albertvaka@kde.org</email></address></affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>2026</year>
<holder>Albert Vaca Cintora</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2026-02-27</date>
<releaseinfo>1.0</releaseinfo>

<abstract>
	<para>This documentation describes the game of KDominate</para>
</abstract>

<keywordset>
	<keyword>KDE</keyword> <!-- do not change this! -->
	<keyword>kdegames</keyword> <!-- do not change this! -->
	<keyword>game</keyword> <!-- do not change this! -->
	<keyword>KDominate</keyword> <!--Application name goes here-->
<!--Game genre. Use as many as necessary.-->
	<keyword>strategy</keyword>
	<keyword>board</keyword>
	<keyword>tiles</keyword>
	<keyword>grid</keyword>
<!--Number of possible players. It can be: One, Two,..., Multiplayer-->
	<keyword>two players</keyword>
<!--All other relevant keywords-->
	<keyword>dominate</keyword>
</keywordset>
</bookinfo>

<chapter id="introduction"><title>Introduction</title>
	<note><title>Gametype:</title><para>Strategy</para></note>
	<note><title>Number of possible players:</title><para>Two</para></note>

<para>KDominate is a tactical game for one or two players, where players place and convert tiles with the goal of controlling the majority of the board.</para>

<para>You can play it against the computer or a friend - or you can set up a game between two computer
players and just watch.</para>

<para>The playing area is a grid of tiles, which can be either empty, occupied by one of the two players,
or contain an obstacle. When the game starts each player controls only a couple tiles on the board.</para>

<para>On their turn, players can either clone a tile of their own to an adjacent empty space, or jump with the tile to an empty space 2 tiles away. After cloning or jumping, all the adjacent tiles from the opponent become their own.</para>

<para>The game ends when the board is full, and the winner is the player who owns more tiles.</para>
</chapter>
<chapter id="howto"><title>How to Play</title>
	<note><title>Objective:</title><para>Control more tiles than the opponent at the end of the game.</para></note>

<para>You move by first clicking on a tile of your color, then clicking one of the highlighted possible moves: either an adjacent tile to clone into, or a tile two spaces away to jump into. After you move, all the opponent's tiles adjacent to the destination tile become yours, and your turn ends.</para>

<para>You can see who's turn it is, as well as the current count of tiles owned by each player, in the status bar at the bottom of the window.</para>

<para>The initial board (including boards of different sizes and with different obstacle configurations) as well as the computer players can be configured from the settings menu.(see the
<link linkend="configuration">Game Configuration</link> section for more details).
</para>
</chapter>

<chapter id="rules"><title>Game rules</title>
<itemizedlist>
<listitem><para>Player 1 always starts first.</para></listitem>
<listitem><para>There's no "pass" move, if no move is available then the player's turn is skipped, otherwise the player must make a move.</para></listitem>
<listitem><para>Tiles which contain obstacles cannot be owned by either player and cannot be jumped over.</para></listitem>
<listitem><para>The game ends when the board is full, and the winner is the player who owns more tiles.</para></listitem>
</itemizedlist>
</chapter>

<chapter id="interface"><title>Interface Overview</title>
<sect1 id="toolbars">
<title>The Toolbar</title>
<sect2 id="stop_start_button">
<title>The Stop/Start Button</title>

<para>This large button appears at the top left of the toolbar and is used to
provide control over animations and computer moves, especially if the computer
has the first move, is playing against itself or is taking too long to move.
The button can also be used for stepping through a game or a move, to let
beginning players view each step at their own pace. Check boxes in the
settings dialog turn the step mode on or off (see the
<link linkend="configuration">Game Configuration</link> section for more details).
</para>

<para>The button has three states:</para>

	<variablelist>
	<varlistentry><term>Red</term>
	<listitem><para>It is possible to stop or interrupt a computer
	calculation, an animation or a computer v. computer game.</para>
	</listitem></varlistentry>
	<varlistentry><term>Green</term>
	<listitem><para>It is possible to start or continue a computer
	move, or a computer v. computer game.</para></listitem>
	</varlistentry>
	<varlistentry><term>Blue</term>
	<listitem><para>The button is disabled and a human action is expected,
	such as making the next move.</para></listitem>
	</varlistentry>
	</variablelist>

<para> In each case, the button contains some text to indicate what action can
be done or is expected, such as &nbsp;<guibutton>Stop showing move</guibutton> or
<guibutton>Your turn</guibutton>.</para>

</sect2>

<sect2 id="toolbar_buttons">
<title>Standard Toolbar Buttons</title>
	<variablelist>
	<varlistentry><term><guiicon>Settings</guiicon></term>
	<listitem><para><action>A shortcut to enter the settings dialog and change playing conditions. See the <link linkend="configuration">Game Configuration</link> section for more details.</action></para></listitem>
	</varlistentry>
	<varlistentry><term><guiicon>New</guiicon></term>
	<listitem><para><action>Start a new game.</action></para></listitem>
	</varlistentry>
	<varlistentry><term><guiicon>Hint</guiicon></term>
	<listitem><para><action>Get a hint as to the best move to make next. The hint is calculated by a computer player of the skill level set in the settings dialog. See the <link linkend="configuration">Game Configuration</link> section for more details.</action></para></listitem>
	</varlistentry>
	<varlistentry><term><guiicon>Undo</guiicon></term>
	<listitem><para><action>Undo a previous move, repeatedly if required.
	</action> Note: It is possible to undo the closing moves of a completed
	game and investigate alternative endings.</para></listitem>
	</varlistentry>
	<varlistentry><term><guiicon>Redo</guiicon></term>
	<listitem><para><action>Redo a move that was undone, repeatedly if
	required.</action></para></listitem>
	</varlistentry>
	</variablelist>
</sect2>

</sect1>

<sect1 id="menu">
<title>Menu Items</title>
<sect2 id="game_menu">
<title>The Game Menu</title>
<variablelist>
	<varlistentry><term><menuchoice><shortcut><keycombo action="simul">
	&Ctrl;<keycap>N</keycap></keycombo></shortcut>
	<guimenu>Game</guimenu><guimenuitem>New</guimenuitem></menuchoice></term>
	<listitem><para><action>Start a new game.</action></para></listitem>
	</varlistentry>
	<varlistentry><term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo></shortcut>
		<guimenu>Game</guimenu><guimenuitem>Quit</guimenuitem></menuchoice></term>
		<listitem><para><action>Quit</action> KDominate.</para></listitem>
	</varlistentry>
</variablelist>
</sect2>

<sect2 id="move_menu">
<title>The Move Menu</title>
<variablelist>
	<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 a previous move, repeatedly if required.
	</action> Note: It is possible to undo the closing moves of a completed
	game and investigate alternative endings.</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 a move that was undone, repeatedly if
	required.</action></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>Get a hint as to the best move to make next. The
	hint is calculated by a computer player of the skill level set in the settings dialog. See the <link linkend="configuration">Game
	Configuration</link> section for more details.</action></para></listitem>
	</varlistentry>
	</variablelist>
</sect2>
</sect1>

</chapter>

<chapter id="faq"><title>Frequently asked questions</title>
<qandaset>
<qandaentry>
 <question><para>I want to change the way this game looks. Can I? </para></question>
 <answer><para>You can change the player's colors or the game theme from the <link linkend="configuration">Game Configuration</link> dialog.</para></answer>
</qandaentry>
<qandaentry>
 <question><para>How do I get started in this game? </para></question>
 <answer><para>The moves of KDominate can be hard to follow at first. One way
     to learn is to watch games where the computer plays against itself. Use the
     <link linkend="configuration">Game Configuration</link> dialog to set it up.
     Check both <guilabel>Playing now</guilabel> boxes, and enable <guilabel>Pause before each computer move</guilabel>. Click <guibutton>OK</guibutton>. Now click the big green button in the toolbar to start the game.
     </para></answer>
</qandaentry>
<qandaentry>
 <question><para>That was too fast for me, how can I slow it down? </para></question>
 <answer><para>Open the <link linkend="configuration">Game Configuration</link>
     dialog and enable <guilabel>Pause before each computer move</guilabel>. You can now use the big toolbar button (whenever it goes green) to trigger each computer move.</para></answer>
</qandaentry>
<qandaentry>
 <question><para>What does the big button in the toolbar do? </para></question>
 <answer><para>This button is used to stop something the computer is doing (red
     color), start or continue a computer action when you are ready (green
     color) or prompt you to do something, such as make a move (blue color,
     button disabled). For a full description see
     <link linkend="stop_start_button">The Stop/Start Button</link>.
     </para></answer>
</qandaentry>
<qandaentry>
 <question><para>Can I use the keyboard to play the game? </para></question>
 <answer><para>No. KDominate cannot be played using the keyboard.
     </para></answer>
</qandaentry>
<qandaentry>
 <question><para>Where are the high scores?</para></question>
 <answer><para>KDominate does not have such a feature.</para></answer>
</qandaentry>
</qandaset>
</chapter>

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

<para>To open the configuration dialog use the <menuchoice><guimenu>Settings</guimenu> <guimenuitem>Configure KDominate…</guimenuitem></menuchoice> menu item, on macOS use the <menuchoice><guimenu>KDominate</guimenu> <guimenuitem>Preferences</guimenuitem></menuchoice> menu item, or you can use the <guibutton>Settings</guibutton> button in the toolbar.</para>

<screenshot>
    <screeninfo>KDominate Settings</screeninfo>
    <mediaobject>
	<imageobject><imagedata fileref="settings.png" format="PNG"/></imageobject>
	<textobject><phrase>KDominate Settings</phrase></textobject>
    </mediaobject>
</screenshot>

<variablelist>
<varlistentry><term><guilabel>Computer Player</guilabel></term>
<listitem><para>The Computer Player 1 and 2 panels control the skill level of each computer player's play and whether that player should actually play instead of the human or just provide hints when asked. Normally you would set the computer to play one player and you would play the other, but you can have two human players or two computer players and just watch.</para></listitem>
</varlistentry>

<varlistentry><term><guilabel>Board</guilabel></term>
<listitem><para>The Board panel allows you to chose the initial layout of the board, with options for different sizes and different obstacle layouts.</para></listitem>
</varlistentry>

<varlistentry><term><guilabel>Theme</guilabel></term>
<listitem><para>The Theme dropdown lets you chose a different look for the tiles.</para></listitem>
</varlistentry>

<varlistentry><term><guilabel>Players' Colors</guilabel></term>
<listitem><para>Choose a color for the tiles of each player and for the obstacles.</para></listitem>
</varlistentry>

</variablelist>

</chapter>

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

<para>KDominate - Copyright 2026, Albert Vaca Cintora</para>

<para>KDominate was inspired by a game that came out for Windows PCs in 1993, by Ken Foster et Sam C. Misemer.</para>

<para>Some of the code is based on KJumpingCube, developed by Matthias Kiefer back in 1999 and reworked by Ian Wadham in 2013.</para>

<para>The tile themes are also based on KJumpingCube's and are the work of Eugene Trounev.</para>

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

</chapter>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
