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

<book lang="&language;">

<bookinfo>
<title>The &kfouleggs; Handbook</title>
    
<authorgroup>
<author>
<firstname>Philip</firstname>
<surname>Rodrigues</surname>
<affiliation>
<address><email>phil.rod@ntlworld.com</email></address>
</affiliation>
</author>

<othercredit role="developer">
<firstname>Nicolas</firstname>
<surname>Hadacek</surname>
<affiliation>
<address><email>hadacek@kde.org</email></address>
</affiliation>
<contrib>Developer</contrib>
</othercredit>

<othercredit role="reviewer">
<firstname>Lauri</firstname>
<surname>Watts</surname>
<affiliation>
<address><email>lauri@kde.org</email></address>
</affiliation>
<contrib>Reviewer</contrib>
</othercredit>

<!-- TRANS:ROLES_OF_TRANSLATORS -->

</authorgroup>

<copyright>
<year>2000</year>
<year>2001</year>
<holder>Philip Rodrigues</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2001-05-29</date>
<releaseinfo>2.00.09</releaseinfo>

<abstract><para>&kfouleggs; is a clone of the Japanese PuyoPuyo game for
the K Desktop Environment.</para></abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>kdegames</keyword>
<keyword>KFoulEggs</keyword>
<keyword>PuyoPuyo</keyword>
</keywordset>

</bookinfo>

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

<para>&kfouleggs; is a clone of the Japanese PuyoPuyo game, with advanced
features such as multiplayer games against human or <acronym>AI</acronym>, and
network play. If you have played <application>Tetris</application>, or one of
its many clones, you will find &kfouleggs; easy to learn.</para>

</chapter>


<chapter id="gameplay">
<title>Game Play</title>

<sect1 id="starting-a-new-game">
<title>Starting a New Game</title>

<para>When you start &kfouleggs;, just click on the <guibutton>Press to
start</guibutton> button, or select <guimenuitem>New</guimenuitem> from the
<guimenu>Game</guimenu> menu at any time to start a new game.</para>

</sect1>

<sect1 id="aim-of-the-game">
<title>Aim of the Game</title>

<para>The aim of the game is to achieve the highest score possible by
moving the falling tiles in such a way that tiles of a similar color are
adjacent, and disappear. The more tiles you remove, the higher your
score.</para>

</sect1>

<sect1 id="playing-the-game">
<title>Playing the Game</title>

<para>Use the <keycap>Left</keycap> and <keycap>Right</keycap> arrow
keys to move the falling tile in the relevant direction, and the
<keycap>Up</keycap> arrow and <keycap>Return</keycap> keys to rotate the
tile left and right respectively. The <keycap>Shift</keycap> key drops
the tile down one line, and the <keycap>Down</keycap> key drops the tile
all the way down - use it as a way of saving time.</para>

<para>All of these key bindings can be customized by selecting
<guimenuitem>Configure key bindings</guimenuitem> from the
<guimenu>Settings</guimenu> menu.</para>

<para>If two or more tiles of the same color come to rest horizontally
or vertically next to each other, they become <quote>glued</quote>. If
four or more pieces of the same color come to be <quote>glued</quote>,
they disppear, and any pieces above them fall down according to the law
of gravity ;-). If this causes four or more pieces to become
<quote>glued</quote>, then they will also disappear, and so on.</para>

<para>Every time you remove 100 tiles, you advance to the next level,
where the tiles fall faster, and the game is more difficult.</para>

<para>The game ends when the central column fills with tiles, and no
more can fall.</para>

</sect1>

</chapter>

<chapter id="preferences">
<title>&kfouleggs; Preferences and Default Keybindings</title>

<sect1 id="game-preferences">
<title>Game preferences</title>

<para>The &kfouleggs; preferences are accessed from
<menuchoice><guimenu>Settings</guimenu>
<guimenuitem>Preferences</guimenuitem></menuchoice>. They can be set as
follows:</para>

<variablelist>
<varlistentry><term><guilabel>Show tile's shadow</guilabel></term>
<listitem><para>If checked, a shadow is placed beneath the game board
showing where the piece will fall.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Show next tile</guilabel></term>
<listitem><para>If checked, shows the next tile that will fall onto the
game board.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Enable animations</guilabel></term>
<listitem><para>If checked, pieces gluing are shown with an
animation.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Block Size</guilabel></term>
<listitem><para>Sets the size of the falling blocks.</para></listitem>
</varlistentry>

</variablelist>

</sect1>

<sect1 id="default-keybindings">
<title>Default keybindings</title>

<para>The default keybindings for &kfouleggs; in one-player mode are as
follows:</para>

<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry>Rotate Left</entry>
<entry><keysym>Up Arrow</keysym></entry>
</row>
<row>
<entry>Rotate Right</entry>
<entry><keysym>Return</keysym></entry>
</row>
<row>
<entry>Move Left</entry>
<entry><keysym>Left Arrow</keysym></entry>
</row>
<row>
<entry>Move Right</entry>
<entry><keysym>Right Arrow</keysym></entry>
</row>
<row>
<entry>Drop Down</entry>
<entry><keysym>Down Arrow</keysym></entry>
</row>
<row>
<entry>Drop One Line</entry>
<entry><keysym>Shift</keysym></entry>
</row>
</tbody>
</tgroup>
</informaltable>

</sect1>
</chapter>

<chapter id="multiplayer-and-network-play">
<title>Multiplayer and Network Play</title>

<sect1 id="general-multiplayer">
<title>General Information</title>

<para>&kfouleggs; supports two local multiplayer types - Human vs. Human
and Human vs. Computer. To play either of these, select it from the
<guimenu>Multiplayers</guimenu> menu.</para>

<sect2 id="local-multiplayer">
<title>Local Multiplayer Games</title>

<para>In Human vs. Human or Human vs. Computer mode, two gameboards are
shown, one for the first player and one for the second. Each has its own
<guilabel>Score</guilabel>, <guilabel>Removed</guilabel> and
<guilabel>Level</guilabel> indicator. The keys for the first human
player become, by default:</para>

<informaltable>
<tgroup cols="2">
<tbody>
<row>
<entry>Rotate Left</entry>
<entry><keycap>E</keycap></entry>
</row>
<row>
<entry>Rotate Right</entry>
<entry><keycap>Alt</keycap></entry>
</row>
<row>
<entry>Move Left</entry>
<entry><keycap>F</keycap></entry>
</row>
<row>
<entry>Move Right</entry>
<entry><keycap>G</keycap></entry>
</row>
<row>
<entry>Drop Down</entry>
<entry><keycap>D</keycap></entry>
</row>
<row>
<entry>Drop One Line</entry>
<entry><keysym>Space</keysym></entry>
</row>
</tbody>
</tgroup>
</informaltable>

<para>The keys for the second human player are the same as for the
player in single player mode. </para>

<para>To return to single player mode, select
<guimenu>Multiplayers</guimenu> and <guimenuitem>Single
Human</guimenuitem>.</para>

</sect2>

<sect2 id="network-games">
<title>Network Multiplayer Games</title>

<para>Multiplayer network games are set up by selecting
<menuchoice><guimenu>Multiplayers</guimenu>
<guimenuitem>More...</guimenuitem></menuchoice></para>

<para>Multiplayer games of &kfouleggs; use the model of a hosted game
which other players join.</para>

</sect2>

<sect2 id="hosting-a-game">
<title>Hosting a game</title>

<para>To host a game, select <guilabel>Create a network game</guilabel>
in the Multiplayers option dialog, set the port you want to use, and
click on the <guibutton>Next</guibutton> button.You then have the option
of changing local players' settings, if there are more than one local
players.  Clicking the <guibutton>Finish</guibutton> button advances the
dialog to the waiting for clients stage. When enough clients have
joined, <guibutton>Start Game</guibutton> starts the multiplayer
game.</para>

</sect2>

<sect2 id="joining-a-game">
<title>Joining a game</title>

<para>To join a game, select <guimenuitem>Join a network
game</guimenuitem> in the Multiplayers option dialog. Select the host
(<guilabel>Server address</guilabel>) and <guilabel>Port</guilabel> you
want to connect to.</para>

<tip><para>Make sure that the port you set when joining a game is the
same as the port that was set by the host of the game!</para></tip>

<para>Clicking <guibutton>Next</guibutton> takes you to the
<guilabel>Local players settings</guilabel> dialog (see above), and then
<guibutton>Finish</guibutton> connects to the remote game. The game
starts when the host chooses - the client has no choice.</para>

</sect2>

</sect1>

</chapter>

<chapter id="commands">
<title>Command Reference</title>

<sect1 id="kfouleggs-mainwindow">
<title>The main &kfouleggs; window</title>

<sect2>
<title>The Game Menu</title>

<variablelist>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>N</keycap></keycombo>
</shortcut>
<guimenu><accel>G</accel>ame</guimenu>
<guimenuitem><accel>N</accel>ew</guimenuitem>
</menuchoice></term>
<listitem><para><action>Starts a new game.</action></para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo><keycap>H</keycap></keycombo>
</shortcut>
<guimenu><accel>G</accel>ame</guimenu>
<guimenuitem>Show High Scores...</guimenuitem>
</menuchoice></term>
<listitem><para><action>Displays the high scores.</action></para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo><keycap>P</keycap></keycombo>
</shortcut>
<guimenu><accel>G</accel>ame</guimenu>
<guimenuitem>Pa<accel>u</accel>se</guimenuitem>
</menuchoice></term>
<listitem><para><action>Pauses the game</action></para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>Q</keycap></keycombo>
</shortcut>
<guimenu><accel>G</accel>ame</guimenu>
<guimenuitem><accel>Q</accel>uit</guimenuitem>
</menuchoice></term>
<listitem><para><action>Quits</action> &kfouleggs;</para></listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2>
<title>The <guimenu>Multiplayers</guimenu> Menu</title>

<variablelist>

<varlistentry>
<term><menuchoice>
<guimenu><accel>M</accel>ultiplayers</guimenu>
<guimenuitem>Single Human</guimenuitem>
</menuchoice></term>
<listitem><para><action>Sets the multiplayer mode to single
player</action></para></listitem>
</varlistentry> 

<varlistentry>
<term><menuchoice>
<guimenu><accel>M</accel>ultiplayers</guimenu>
<guimenuitem>Human vs Human</guimenuitem>
</menuchoice></term>
<listitem><para><action>Sets the multiplayer mode to two player with two human
players.</action></para></listitem>
</varlistentry> 

<varlistentry>
<term><menuchoice>
<guimenu><accel>M</accel>ultiplayers</guimenu>
<guimenuitem>Human vs <accel>C</accel>omputer</guimenuitem>
</menuchoice></term>
<listitem><para><action>Sets the multiplayer mode to two player with one human
and one computer player.</action></para></listitem>
</varlistentry> 

<varlistentry>
<term><menuchoice>
<guimenu><accel>M</accel>ultiplayers</guimenu>
<guimenuitem>More...</guimenuitem>
</menuchoice></term>
<listitem><para><action>Displays the multiplayer
options dialog.</action></para></listitem> 
</varlistentry>

</variablelist>

</sect2>

<sect2>
<title>The <guimenu>Settings</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo>
</shortcut>
<guimenu><accel>S</accel>ettings</guimenu>
<guimenuitem>Show <accel>M</accel>enubar</guimenuitem>
</menuchoice></term>
<listitem><para><action>Shows or hides the Menubar</action></para></listitem>
</varlistentry> 

<varlistentry>
<term><menuchoice>
<guimenu><accel>S</accel>ettings</guimenu>
<guimenuitem>Configure <accel>K</accel>ey Bindings</guimenuitem>
</menuchoice></term>
<listitem><para><action>Displays a standard &kde; key bindings
configurator.</action></para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu><accel>S</accel>ettings</guimenu>
<guimenuitem><accel>C</accel>onfigure &kfouleggs;</guimenuitem>
</menuchoice></term>
<listitem><para><action>Displays/changes</action> the &kfouleggs;
preferences.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu><accel>S</accel>ettings</guimenu>
<guimenuitem>Configure AI...</guimenuitem>
</menuchoice></term>
<listitem><para>Displays the &kfouleggs; <acronym>AI</acronym>
Configurator</para></listitem> 
</varlistentry> 
</variablelist>

</sect2>

<sect2 id="help">
<title>The <guimenuitem>Help</guimenuitem> Menu</title>

<variablelist>
<varlistentry>
<term><menuchoice>
<shortcut><keycombo><keycap>F1</keycap></keycombo></shortcut>
<guimenu><accel>H</accel>elp</guimenu><guimenuitem><accel>C</accel>ontents</guimenuitem></menuchoice></term>
<listitem><para>This invokes the &kde; help system starting at the
&kfouleggs; help pages (this document).</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut><keycombo><keycap>Shift</keycap><keycap>F1</keycap></keycombo></shortcut>
<guimenu><accel>H</accel>elp</guimenu><guimenuitem>What's
<accel>T</accel>his?</guimenuitem></menuchoice></term>
<listitem><para>This changes the mouse cursor to a combination arrow and
question mark. Clicking on items within &kfouleggs; with this arrow will
open a help window (if one exists for the particular item) explaining
the item's function.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice><guimenu><accel>H</accel>elp</guimenu>
<guimenuitem><accel>R</accel>eport Bug</guimenuitem></menuchoice></term>
<listitem><para>Report a bug or a wishlist item to &kfouleggs;'
authors.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu><accel>H</accel>elp</guimenu><guimenuitem><accel>A</accel>bout
Kfouleggs</guimenuitem></menuchoice></term>
<listitem><para>This will displays version and author
information</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu><accel>H</accel>elp</guimenu><guimenuitem>About
<accel>K</accel>DE</guimenuitem></menuchoice></term>
<listitem><para>This displays the &kde; version and other basic
information.</para></listitem>
</varlistentry>

</variablelist>

</sect2>

</sect1>

</chapter>

<chapter id="credits">

<title>Credits and License</title>

<para>&kfouleggs;</para>

<para>Program core engine copyright 1995 Eirik End <email></email></para>
<para>Program copyright 1996-2001 Nicolas Hadacek
<email>hadacek@kde.org</email></para>

<para>Documentation copyright 2000, 2001, Philip Rodrigues
<email>phil.rod@ntlworld.com</email></para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;

&underGPL;

</chapter>

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

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

<para>&kfouleggs; is part of the &kde; project <ulink
url="http://www.kde.org">http://www.kde.org</ulink>.  &kfouleggs; can be
found in the kdegames package on <ulink
url="ftp://ftp.kde.org/pub/kde/">ftp://ftp.kde.org/pub/kde/</ulink>, the
main ftp site of the &kde; project. </para>

<para>All required libraries can be found on <ulink
url="ftp://ftp.kde.org">The &kde; &FTP; site</ulink>.</para>

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

<para>In order to compile and install &kfouleggs; on your system, type the
following in the base directory of the kdegames distribution:</para>

<screen width="40">
<prompt>%</prompt> <userinput>./configure</userinput>
<prompt>%</prompt> <userinput><command>make</command></userinput>
<prompt>%</prompt> <userinput><command>make</command> <option>install</option></userinput>
</screen>

<para>Since &kfouleggs; uses <application>autoconf</application> and
<application>automake</application> you should have not trouble
compiling it. Should you run into problems please report them to the &kde;
mailing list, or the program maintainer, Nicolas Hadacek, at
<email>hadacek@kde.org</email>.</para>

</sect2>

</sect1>

</appendix>

&documentation.index; 

</book>

<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
sgml-indent-step:0
sgml-indent-data:t
End:
-->
