<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kappname "&kfourinline;">
<!ENTITY package "kdegames">
<!ENTITY % English "INCLUDE"> 
<!ENTITY % addindex "IGNORE">
]>

<book lang="&language;">
<bookinfo>
<title>KFourInLine</title>

<authorgroup>
<author>
<firstname>Martin</firstname>
<surname>Heni</surname>
<affiliation>
<address>&Martin.Heni.mail;</address>
</affiliation>
</author>
<author>
<firstname>Eugene</firstname>
<surname>Trounev</surname>
<affiliation>
<address><email>eugene.trounev@gmail.com</email></address></affiliation>
</author>
<author>
<firstname>Benjamin</firstname>
<surname>Meyer</surname>
</author>
<author>
<firstname>Johann Ollivier</firstname>
<surname>Lapeyre</surname>
</author>
<author>
<firstname>Anton</firstname>
<surname>Brondz</surname>
<affiliation>
<address><email>dinolinux@gmail.com</email></address>
</affiliation>
</author>


<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<copyright>
<year>1995</year><year>2007</year>
<holder>&Martin.Heni;</holder>
</copyright>
    
<legalnotice>&FDLNotice;</legalnotice>

<date>2007-11-14</date>
<releaseinfo>1.4.0</releaseinfo>

<abstract>
<para>
&kfourinline; is a four-in-a-row game for &kde;.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>kdegames</keyword>
<keyword>game</keyword>
<keyword>board</keyword>
<keyword>board game</keyword>
<keyword>four wins</keyword>
<keyword>four</keyword>
<keyword>four in a row</keyword>
<keyword>four in line</keyword>
<keyword>kfourinline</keyword>
<keyword>connect four</keyword>
<keyword>connect 4</keyword>
</keywordset>
</bookinfo>

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

<para>
Game type: Strategy, Board
</para>

<para>
&kfourinline; is a board game for two players based on the
<trademark>Connect-Four</trademark> game.
</para>

<para>
The players try to build up a row of four pieces using different strategies. Pieces are
placed on a board. The game can also be played against a computer.
</para>

</chapter>

<chapter id="howtoplay">
<title>How to Play</title>
<para>
When &kfourinline; loads, you can select the difficulty or start a two player game. If you like,
you can also pick your color and select which color starts the game.
</para>

<para>
Each player is represented by a color (for example yellow or white for player one and red for player two).  
The goal of the game is to get four connected pieces of your color into any row, column or
diagonal.  
The players move in turns. Each turn the player can place one of his or her pieces
into any of the seven columns where each piece will fall to the lowest possible free place &ie; it
will fall down until it reaches the ground level or another piece.
</para>

<para>
After one player's move is done the second player can make his or her input.
This is repeated until the game is over, which is when one of the
players has four pieces in a row, column or diagonal or no more moves
are possible because the board is filled.
</para>

<para>
A player who first manages to get four pieces in a row, column or diagonal wins the
game. If no more moves can be made but no player has won, the game ends drawn.
</para>

</chapter>

<chapter id="rules">
<title>Game rules, strategies and tips</title>

<para>
The board is separated into several regions.
</para>

<para>
The <firstterm>game board</firstterm> is constructed out of 7x6 fields
which will be filled from bottom to top. The fields are marked with pieces in the
color of the player who made the move to this position.  On top of each column a
colored arrow shows were the last piece had been put.
</para>

<para>
The <firstterm>status display</firstterm> shows which player 
is controlled by which input device. A local player can input moves using
keyboard or mouse, a remote player is shown as network input and finally
a the computer can control the input for a player.
The status display further shows the player's names and the level of the computer opponent.
Additionally the number of won, drawn, lost and aborted games is noted for both player. 
Which player is next to move is indicated by one of the player's names being highlighted.
</para>

<para>
The <firstterm>statusbar</firstterm> at the bottom of the screen displays the status of the game and
which player is next to play.
</para>

<sect1 id="remote-connections">
<title>Remote Connections</title>

<para>
It is possible to play the game over a network connection with another
computer. 
One of the computers will act as game server. This one can determine
who should play which color. You can configure the network options
in the menu 
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Network Configuration...</guimenuitem></menuchoice>.
In the menu
<menuchoice><guimenu>Game</guimenu><guimenuitem>Network Chat...</guimenuitem></menuchoice>.
you find a chat dialog box which allows you to speak with your friend.
</para>

<para>
When a network connection is build you are asked to enter a remote host
and a port. The port can usually just be left untouched, but if you know
what you are doing replace it by another number, which has to be the
same in both player games of course. The hostname should be the name of
the remote host to which you are connecting. Only the client in
the connection has to supply a hostname. It is often wise that the player
behind a firewall chooses to be client as the firewall might not allow
incoming connections.
</para>

</sect1>
</chapter>

<chapter id="faq">
<title>Frequently asked questions</title>
<qandaset>


<qandaentry>
<question>
<para>
How do I start a new game?
</para>
</question>
<answer>
<para>
Press the <guibutton>New</guibutton> button, select <menuchoice><guimenu>Game</guimenu><guimenuitem>New</guimenuitem></menuchoice> from the menubar or press 
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
How can I end the game?
</para>
</question>
<answer>
<para>
Press the <guibutton>End Game</guibutton> button, select <menuchoice><guimenu>Game</guimenu><guimenuitem>End Game</guimenuitem></menuchoice> from the 
menubar or press<keycombo action="simul">&Ctrl;<keycap>End</keycap></keycombo>
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
How do I pause the game?
</para>
</question>
<answer>
<para>
&kfourinline; is turn-based, there is no need to pause it.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
I don't know what to do, is there a way to get help?
</para>
</question>
<answer>
<para>
You can get a hint by clicking the <guibutton>Hint</guibutton> button, a differently colored 
piece will appear where you should put your piece
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Is there a way to undo?
</para>
</question>
<answer>
<para>
Yes, you can use the <guibutton>Undo</guibutton> button, press 
<keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo> or select <menuchoice><guimenu>Move</guimenu><guimenuitem>Undo</guimenuitem></menuchoice> 
from the menubar
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Can I change the look of the game?
</para>
</question>
<answer>
<para>
You can change the color of the pieces by opening the <guimenu>Settings</guimenu> menu and select <guisubmenu>Theme</guisubmenu>.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Can I use the keyboard?
</para>
</question>
<answer>
<para>
You can use the keyboard to do basic operations like starting a new game, 
quiting and getting hints, but you cannot use the keyboard to control the pieces.
To view a list of the current keyboard bindings, open the <guimenu>Settings</guimenu> menu and 
select <guimenuitem>Configure Shortcuts...</guimenuitem>.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
I have lost control of who is in the lead, can I find it out?
</para>
</question>
<answer>
<para>
Yes, you can see statistics by opening the <guimenu>Game</guimenu> menu and 
selecting <guimenuitem>Show Statistics</guimenuitem>.
</para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para>
Can I replay a game?
</para>
</question>
<answer>
<para>
No, &kfourinline; cannot replay.
</para>
</answer>
</qandaentry>

</qandaset>

</chapter>


<chapter id="menus">
<title>Menus</title>

<sect1 id="game-menu">
<title><guimenu>Game</guimenu> 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>
Starts a new game. In a network game this option is only available for
the network server. The network client will be automatically started by
the server.  
</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>
Loads a saved game.
</para>
</listitem>
</varlistentry>

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

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>End</keycap></keycombo>
</shortcut>
<guimenu>Game</guimenu>
<guimenuitem>End Game</guimenuitem></menuchoice></term>
<listitem>
<para>
Aborts a running game.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Game</guimenu>
<guimenuitem>Network Chat...</guimenuitem></menuchoice></term>
<listitem>
<para>
Pops up a chat widget which allows you to send messages to the
other party.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Game</guimenu>
<guimenuitem>Show Statistics</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Shows a dialog containing information about the overall game statistics, that is
games won, lost or drawn by both player. 
The dialog also allows to clear this all time statistics.
</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>
</variablelist>

</sect1>

<sect1 id="move-menu">
<title><guimenu>Move</guimenu> Menu</title>
<variablelist>
<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo>
</shortcut>
<guimenu>Move</guimenu>
<guimenuitem>Undo</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Undo the last move. If the previous player is played by the computer two
moves are taken back so that it is the player's turn again.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo>
</shortcut>
<guimenu>Move</guimenu>
<guimenuitem>Redo</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Replay a move which had been undone. If one of the players is played by
the computer two moves are redone so that it is the player's turn again.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<shortcut>
<keycap>H</keycap>
</shortcut>
<guimenu>Move</guimenu>
<guimenuitem>Hint</guimenuitem>
</menuchoice></term>
<listitem>
<para>
The computer will calculate the best possible move for you and mark it with a
sign on the game board.  How good the move actually is depends on the level of
the computer.
</para>
</listitem>
</varlistentry>

</variablelist>

</sect1>


<sect1 id="option-menu">
<title><guimenu>Settings</guimenu> Menu</title>

<variablelist>


<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Show Toolbar</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Toggle on and off the display of the toolbar.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Show Statusbar</guimenuitem>
</menuchoice></term>
<listitem>
<para>
Toggle on and off the display of the statusbar.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guisubmenu>Theme</guisubmenu>
</menuchoice></term>
<listitem><para>
<action>Choose a graphical theme for the game. Which themes are available depends on the current installation.</action>
</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Network Configuration...</guimenuitem></menuchoice></term>
<listitem>
<para>
Pops up a dialog for the network configuration. You can choose to be
server or client. If you are server you can also choose what color the
remote player should take over. If a network game is running you can 
also disconnect it in this menu.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Configure Shortcuts...</guimenuitem>
</menuchoice></term>
<listitem><para>
<action>Open a dialog which lets you redefine all the keyboard shortcuts.</action>
</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Configure Toolbars...</guimenuitem>
</menuchoice></term>
<listitem><para>Displays a &kde; standard dialog where you can configure the toolbar icons.</para></listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Settings</guimenu>
<guimenuitem>Configure &kfourinline;...</guimenuitem>
</menuchoice></term>

<listitem><para><action>Displays</action> the &kfourinline;
configuration dialog.</para>

</listitem>
</varlistentry>

</variablelist>
</sect1>

<sect1 id="help">
<title><guimenu>Help</guimenu> Menu</title>

&help.menu.documentation;

</sect1>

</chapter>

<chapter id="config">
<title>Game Configuration</title>
<para>&kfourinline; can be configured using the configuration dialog with <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure &kfourinline;...</guimenuitem></menuchoice> </para>
<para><guilabel>Starting Player Color</guilabel>: Determine which  player color (<guilabel>Red</guilabel> or <guilabel>Black</guilabel>) has the first move in the next game.</para>
<para><guilabel>Player Names</guilabel>: Change the names of the players.</para>
<para><guilabel>Black Plays With</guilabel>: 
Choose who should play for player 1. It can be either
<guilabel>Mouse</guilabel> or <guilabel>Keyboard</guilabel>,
&ie; a local player using the mouse or keyboard
as input device or <guilabel>Computer</guilabel>, &ie; the computer
plays for this player.</para>
<para><guilabel>Red Plays With</guilabel>: Same as <guilabel>Black Plays With</guilabel> but for player 2
(red).</para>
<para><guilabel>Computer Difficulty</guilabel>: Select the level of the computer player.</para>
<para><guilabel>Use AI learning</guilabel>: The computer AI can learn from mistakes made in one game.</para>


</chapter>

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

<para>
&kfourinline;
</para>
<para>
Program copyright 1995-2007 &Martin.Heni; &Martin.Heni.mail;
and Benjamin Meyer.
</para>
<para>
Graphics copyright 2007 Eugene Trounev <email>eugene.trounev@gmail.com</email>
and Johann Ollivier Lapeyre.
</para>
<para>
Documentation copyright 2007 &Martin.Heni; &Martin.Heni.mail; and Benjamin Meyer.
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->

&underFDL;
&underGPL;

</chapter>

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

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

&install.intro.documentation;

</sect1>

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

&install.compile.documentation;

</sect1>
</appendix>


&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:
-->

