<?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="picmi" lang="&language;">
<bookinfo>
<title>The &picmi; Handbook</title>

<authorgroup>
<author>
<firstname>Jakob</firstname>
<surname>Gruber</surname>
<affiliation><address><email>jakob.gruber@gmail.com</email></address></affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>2012</year>
<holder>Jakob Gruber</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2021-10-08</date>
<releaseinfo>2.0.0 (KDE Gear 21.08)</releaseinfo>

<abstract>
<para>
&picmi;, a nonogram puzzle game.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>kdegames</keyword>
<keyword>game</keyword>
<keyword>puzzle game</keyword>
<keyword>Picmi</keyword>
</keywordset>
</bookinfo>

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

<para>
&picmi; is a single player puzzle game.
</para>

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

<para>
The goal of the game is to color cells according to numbers given at the side of the board.
</para>
</chapter>

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

<para>
The player is presented with a blank board, and a list of numbers for each row and column. These numbers represent how runs are organized within any given row or column. For example, a number sequence of <quote>4 8 3</quote> would mean there are sets of four, eight, and three filled cells, in that order, with at least one blank cell between successive groups. The objective of the game is to use these hints to uncover the actual solution, and do this as quickly as possible.
</para>

<para>
A left-click (un)marks a cell as occupied, while a right click (un)marks a cell as empty. Dragging may be used to mark several cells in a row or column in one go. The elapsed time is displayed in the status bar, and an overview of the game board is located in the upper left corner. A game is completed once all occupied cells have been marked correctly.
</para>

<para>
The current placement of boxes and crosses (referred to as 'states' from now on) can be saved at any time. Saving a new state does not overwrite previous saved states. Restoring a state always returns to the most recently saved state. This can be repeated until no more saved states remain. The number of actions since the latest saved state is displayed in the status bar.
</para>

<para>
&picmi; includes two game modes.
Random puzzles (generated by selecting the <menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo></shortcut> <guimenu>Game</guimenu> <guimenuitem>New</guimenuitem></menuchoice> menu item) are generated according to the selected difficulty settings. Alternatively, the included preset puzzles can be played by selecting the <menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo></shortcut> <guimenu>Game</guimenu> <guimenuitem>Load…</guimenuitem></menuchoice> menu item.
</para>

</chapter>

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

<sect1 id="rules">
<title>Rules</title>
<para>The number sequence in a row or column provides certain information about the count of occupied cells and their arrangement within a row or column.</para>
<itemizedlist>
  <listitem><para>A number represents the length of a connected run of occupied cells on the board. This run either has at least one empty cell on each side or is located directly on the board edge.</para></listitem>
  <listitem><para>Additionally, a number sequence shows the order of these runs within a row or column.</para></listitem>
  <listitem><para>The <guilabel>Prevent mistakes:</guilabel> option applies only to games with <guimenu>Custom</guimenu> difficulty.</para></listitem>
  <listitem><para>When the <guilabel>Prevent mistakes:</guilabel> option is enabled, it is not possible to incorrectly mark a cell as occupied - instead, penalty time is added to the timer. The penalty is increased with each mistake made.</para></listitem>
  <listitem><para>If <guilabel>Prevent mistakes:</guilabel> option is disabled, there is no feedback whether a cell has been marked correctly, and there is no penalty for making mistakes.</para></listitem>
  <listitem><para>The game will stop once all occupied cells have been marked correctly.</para></listitem>
</itemizedlist>
</sect1>

</chapter>

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

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

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> </shortcut>
    <guimenu>Game</guimenu>
    <guimenuitem>Load…</guimenuitem></menuchoice></term>
    <listitem><para><action>Loads a preset puzzle.</action> The names of puzzles are hidden until they are solved. High score lists and difficulty settings are disabled.</para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycap>F5</keycap></shortcut>
    <guimenu>Game</guimenu>
    <guimenuitem>Restart Game</guimenuitem></menuchoice></term>
    <listitem><para><action>This will restart the current game.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycap>P</keycap></shortcut>
    <guimenu>Game</guimenu>
    <guimenuitem>Pause</guimenuitem></menuchoice></term>
    <listitem><para><action>Pauses the game time.</action> 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><action>Shows a dialog containing the High Scores for the various difficulty levels.</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>Quits</action> the &picmi;.</para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo> </shortcut>
    <guimenu>Move</guimenu>
    <guimenuitem>Undo</guimenuitem></menuchoice></term>
    <listitem><para><action>Undo the previous move</action> if one exists.</para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>I</keycap></keycombo> </shortcut>
    <guimenu>Move</guimenu>
    <guimenuitem>Hint</guimenuitem></menuchoice></term>
    <listitem><para><action>Marks a cell as occupied or empty.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><guimenu>Move</guimenu>
    <guimenuitem>Solve</guimenuitem></menuchoice></term>
    <listitem><para><action>Play a demo game.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>L</keycap></keycombo> </shortcut>
    <guimenu>Move</guimenu>
    <guimenuitem>Load Position</guimenuitem></menuchoice></term>
    <listitem><para><action>Loads the most recently saved position.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> </shortcut>
    <guimenu>Move</guimenu>
    <guimenuitem>Save Position</guimenuitem></menuchoice></term>
    <listitem><para><action>Saves the current board position.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo> </shortcut>
    <guimenu>View</guimenu>
    <guimenuitem>Full Screen Mode</guimenuitem></menuchoice></term>
    <listitem><para><action>Toggles the graphic interface to full screen mode.</action></para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><guimenu>Settings</guimenu>
    <guisubmenu>Difficulty</guisubmenu></menuchoice></term>
    <listitem><para><action>Lets you set the difficulty level from a sub-menu.</action></para>
    <para>There are four levels of difficulty:
      <itemizedlist>
        <listitem><para><guimenuitem>Easy</guimenuitem>: 10 rows, 10 columns, 55% of all cells are occupied, <guilabel>Prevent mistakes:</guilabel> option is disabled.</para></listitem>
        <listitem><para><guimenuitem>Medium</guimenuitem>: 10 rows, 15 columns, 55% of all cells are occupied, <guilabel>Prevent mistakes:</guilabel> option is disabled.</para></listitem>
        <listitem><para><guimenuitem>Hard</guimenuitem>: 15 rows, 15 columns, 55% of all cells are occupied, <guilabel>Prevent mistakes:</guilabel> option is disabled.</para></listitem>
        <listitem><para><guimenuitem>Custom</guimenuitem>: Custom board dimensions and settings.</para></listitem>
      </itemizedlist>
    </para></listitem>
  </varlistentry>

  <varlistentry>
    <term><menuchoice><guimenu>Settings</guimenu>
    <guimenuitem>Configure &picmi;…</guimenuitem></menuchoice></term>
    <listitem><para><action>Choose the game background image, board dimensions and settings for custom difficulty.</action></para></listitem>
  </varlistentry>
</variablelist>

<para>
Additionally &picmi; 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>Start a new game</entry>
        <entry><keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo></entry>
      </row>
      <row>
        <entry>Load a preset game</entry>
        <entry><keycombo action="simul">&Ctrl;<keycap>O</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>Full Screen Mode</entry>
        <entry><keycombo action="simul">&Ctrl;&Shift;<keycap>F</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>
    </tbody>
  </tgroup>
</table>

<table>
  <title>Keyboard controls</title>
  <tgroup cols="2">
    <tbody>
      <row>
        <entry>Move Left</entry>
        <entry>&Left; or <keycap>H</keycap></entry>
      </row>
      <row>
        <entry>Move Right</entry>
        <entry>&Right; or <keycap>L</keycap></entry>
      </row>
      <row>
        <entry>Move Up</entry>
        <entry>&Up; or <keycap>K</keycap></entry>
      </row>
      <row>
        <entry>Move Down</entry>
        <entry>&Down; or <keycap>J</keycap></entry>
      </row>
      <row>
        <entry>(Un)mark cell occupied</entry>
        <entry><keycap>X</keycap></entry>
      </row>
      <row>
        <entry>(Un)mark cell free</entry>
        <entry>&Space;</entry>
      </row>
    </tbody>
  </tgroup>
</table>

</sect1>
</chapter>


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

<para>
&picmi;
</para>
<para>
Program copyright 2012 by Jakob Gruber <email>jakob.gruber@gmail.com</email>
</para>
<para>
Documentation copyright 2012 by Jakob Gruber <email>jakob.gruber@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:
-->
