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

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

<authorgroup>
<author>
<firstname>Fela</firstname>
<surname>Winkelmolen</surname>
<affiliation>
<address><email>fela.kde@gmail.com</email></address></affiliation>
</author>
<author>
<firstname>Eugene</firstname><surname>Trounev</surname>
<affiliation><address><email>eugene.trounev@gmail.com</email></address></affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>2007</year>
<holder>Fela Winkelmolen</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2021-07-26</date>
<releaseinfo>3.3.2 (KDE Gear 21.08)</releaseinfo>

<abstract>
<para>
&knetwalk;, a game for system administrators.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>kdegames</keyword>
<keyword>game</keyword>
<keyword>logic game</keyword>
<keyword>knetwalk</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>One</para></note>

  <para>&knetwalk; is a single player logic game.</para>

  <para>The object of the game is to start the LAN, connecting all the terminals to the server, in as few turns as possible.</para>
</chapter>

<chapter id="how-to-play">
<title>How to Play</title>

<note><title>Objective:</title><para>Connect each client with the server, without leaving wires unconnected.</para></note>

<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="gameboard.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>&knetwalk; Game Board</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>
The player is presented with a rectangular grid containing a server, several terminals, and pieces of wire.  The object of the game is to rotate these elements until every client is connected to the server, and no wires are left unconnected.  Optionally, you can try to get a high score by minimizing the number of rotations needed.
</para>

<para>
Left clicking on a square rotates it counterclockwise, while right clicking  rotates  it  clockwise. Middle clicking on a square marks it as blocked and prevents it from being rotated unless it gets unblocked by another middle click; this can be very useful for  marking  squares  which are known to be in the correct orientation. The status bar displays the number of clicks so far.
</para>

</chapter>

<chapter id="rules-strategies-tips">
<title>Game Rules, Strategies and Tips</title>

<sect1 id="rules">
<title>Rules</title>
<itemizedlist>
<listitem><para>There is only one possible correct solution for every game.</para></listitem>
<listitem><para>When playing the <guilabel>Very hard</guilabel> difficulty level, connections can wrap from left to right and from top to bottom.</para></listitem>
<listitem><para>The game ends when every terminal and every wire is connected to the server.</para></listitem>
<listitem><para>The score rewards the least number of clicks it took to complete the game. The smaller this number, better.</para></listitem>
</itemizedlist>
</sect1>

<sect1 id="stategies-and-tips">
<title>Strategies and Tips</title>
<itemizedlist>
<listitem><para>Start seeking for squares which orientation can be easily determined.</para></listitem>
<listitem><para>Once you are sure of the orientation of a square you can mark it using the &MMB;. This is particularly usefull in harder games.</para></listitem>
<listitem><para>Look for I-shaped and T-shaped wires near the borders, and L-shaped wires near the edges. The position of these squares can be easily determined, unless you are playing the <guilabel>Very hard</guilabel> difficulty level.</para></listitem>
<listitem><para>When playing the <guilabel>Very hard</guilabel> difficulty level a good place to start looking is near empty squares, if present, and near regions containing many terminals grouped together.</para></listitem>
<listitem><para>Even when playing with the same difficulty level some games are easier than others, restart the game if you want to get a different board.</para></listitem>
<listitem><para>If you want to get a good score, only do a move when you are sure.</para></listitem>
</itemizedlist>
</sect1>

</chapter>

<chapter id="interface-overview">
<title>Interface Overview</title>

<sect1 id="menu">
<title>Menu Items</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>
Starts a new game. It creates a random board using the current difficulty level.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut><keycap>P</keycap></shortcut>
<guimenu>Game</guimenu>
<guimenuitem>Pause</guimenuitem></menuchoice></term>
<listitem>
<para>
Pauses the game time. Click on the menu item again to make the game resume. Note that the board disappears when the game is paused as it would be unfair if you could search for good moves without the time pressure.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>Show High Scores</guimenuitem></menuchoice></term>
<listitem>
<para>
Shows a dialog containing the High Scores for the various difficulty levels.
</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>
Quits the program.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Move</guimenu>
<guimenuitem>Solve</guimenuitem>
</menuchoice></term>
<listitem>
<para>Use it to give up a game. It shows you the solution, but the record will not be considered as a high score.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Move</guimenu>
<guimenuitem>Unlock All</guimenuitem>
</menuchoice></term>
<listitem>
<para>
  Unlock all cells which were previously locked by the player using &Space; or automatically after checking <guilabel>Auto lock</guilabel> option on <link linkend="config_general"><guilabel>General</guilabel> page</link> of <guilabel>Configure - &knetwalk;</guilabel> dialog.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guisubmenu>Difficulty</guisubmenu>
</menuchoice></term>
<listitem>
<para>Lets you set the difficulty level from a sub-menu.</para>
<para>There are five levels of difficulty:
<itemizedlist>
<listitem><para><guimenuitem>Easy</guimenuitem>: 5 rows, 5 columns, without wrapping.</para></listitem>
<listitem><para><guimenuitem>Medium</guimenuitem>: 7 rows, 7 columns, without wrapping.</para></listitem>
<listitem><para><guimenuitem>Hard</guimenuitem>: 9 rows, 9 columns, without wrapping.</para></listitem>
<listitem><para><guimenuitem>Very hard</guimenuitem>: 9 rows, 9 columns, with wrapping.</para></listitem>
<listitem><para><guimenuitem>Custom</guimenuitem>: The settings you have configured in the <link linkend="config_custom_game"><guilabel>Configure - &knetwalk;</guilabel> dialog</link> will be used.</para></listitem>
</itemizedlist>
</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Configure &knetwalk;…</guimenuitem>
</menuchoice></term>
<listitem><para>
  <action>Open <guilabel>Configure - &knetwalk;</guilabel> dialog.</action> Please see <link linkend="configuration">Game Configuration</link> for more information.
</para></listitem>
</varlistentry>
</variablelist>

<para>
Additionally &knetwalk; 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="configuration">
   <title>Game Configuration</title>
   <para>
     To open the <guilabel>Configure - &knetwalk;</guilabel> dialog, select the <menuchoice><guimenu>Settings</guimenu>
     <guimenuitem>Configure &knetwalk;…</guimenuitem></menuchoice> menu item.
   </para>
   <sect2 id="config_general">
     <title>General</title>
     <para>
       Using this page you can change the following game settings.
     </para>
     <variablelist>
       <varlistentry>
	 <term>
	   <guilabel>
	     Play sounds
	   </guilabel>
	 </term>
	 <listitem>
	   <para>
	     If checked, &knetwalk; game sounds are played.
	   </para>
	 </listitem>
       </varlistentry>
       <varlistentry>
	 <term>
	   <guilabel>
	     Auto lock
	   </guilabel>
	 </term>
	 <listitem>
	   <para>
	     If checked, &knetwalk; will automatically lock cell after rotation.
	   </para>
	 </listitem>
       </varlistentry>
       <varlistentry>
	 <term>
	   <guilabel>
	     Reverse mouse buttons
	   </guilabel>
	 </term>
	 <listitem>
	   <para>
	     If checked, &knetwalk; uses the left click for the clockwise rotation and the right click for the counter-clockwise rotation.
	   </para>
	 </listitem>
       </varlistentry>
       <varlistentry>
	 <term>
	   <guilabel>
	     Rotate duration:
	   </guilabel>
	 </term>
	 <listitem>
	   <para>
	     Here you can determine the time needed to animate a single cell rotation.
	   </para>
	 </listitem>
       </varlistentry>
     </variablelist>
   </sect2>
   <sect2 id="config_theme">
     <title>Theme</title>
     <para>
       To select the theme you want to play, go to the <guilabel>Theme</guilabel> section. The theme is loaded by clicking on <guibutton>OK</guibutton> or <guibutton>Apply</guibutton>. The current game will be ended and a new one started. You can click on the <guibutton>Defaults</guibutton> button to restore the default theme.
     </para>
   </sect2>
   <sect2 id="config_custom_game">
     <title>Custom Game</title>
     <para>
       This page can be used to configure custom game settings. You can choose <guilabel>Width:</guilabel> and <guilabel>Height:</guilabel> of the board and check the <guilabel>Wrapping</guilabel> if the board should be wrapped from left to right and from top to bottom.
     </para>
   </sect2>
</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>Start a new game</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</entry>
</row>
<row>
<entry>Pause</entry>
<entry>
<keycap>P</keycap>
</entry>
</row>
<row>
<entry>Show High Scores</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo>
</entry>
</row>
<row>
<entry>Quit</entry>
<entry>
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
</entry>
</row>
<row>
<entry>Help</entry>
<entry><keycap>F1</keycap></entry>
</row>
<row>
<entry>What's this? help</entry>
<entry>
<keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo>
</entry>
</row>
<row>
<entry>Move left</entry>
<entry>
&Left; arrow
</entry>
</row>
<row>
<entry>Move right</entry>
<entry>
&Right; arrow
</entry>
</row>
<row>
<entry>Move up</entry>
<entry>
&Up; arrow
</entry>
</row>
<row>
<entry>Move down</entry>
<entry>
&Down; arrow
</entry>
</row>
<row>
<entry>Turn clockwise</entry>
<entry>
&Enter;
</entry>
</row>
<row>
<entry>Turn counterclockwise</entry>
<entry>
<keycombo>&Ctrl;&Enter;</keycombo>
</entry>
</row>
<row>
<entry>Toggle lock</entry>
<entry>
&Space;
</entry>
</row>
</tbody>
</tgroup>
</table>

</sect1>
</chapter>


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

<para>
&knetwalk;
</para>
<para>
Program copyright 2004 - 2007 by Andi Peredri, Thomas Nagy and Fela Winkelmolen <email>fela.kde@gmail.com</email>
</para>
<para>
Documentation copyright 2007 by Fela Winkelmolen <email>fela.kde@gmail.com</email>
</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-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:t
End:
-->

