<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN">
<book lang="de" id="KAbalone">
  
  <bookinfo>
    <title>Das KAbalone-Handbuch</title>
    <authorgroup>
      <author>
	<firstname>Josef</firstname>
	<surname>Weidendorfer</surname>
	<affiliation>
	  <address>
<email><ulink url="mailto:weidendo@informatik.tu-muenchen.de">
weidendo@informatik.tu-muenchen.de</ulink></email></address>
	</affiliation>
      </author>
    </authorgroup>

    <date>09/09/1999</date>
    <releaseinfo>1.04.00</releaseinfo>

    <abstract>
      <para>
Diese Dokumentation wurde zuletzt f&uuml;r <application>KAbalone</application>
Version 1.04 aktualisiert.
Bitte richten Sie alle Kommentare und Verbesserungsvorschl&auml;ge an den
Autor.</para>
    </abstract>

    <keywordset>
      <keyword>KDE</keyword>
      <keyword>Spiel</keyword>
      <keyword>abalone</keyword>
      <keyword>linux</keyword>
    </keywordset>

  </bookinfo>



  <chapter id="Introduction">
    <title>Einf&uuml;hrung</title>

    <para>
Abalone ist ein einfaches Brettspiel. Zwei Personen spielen gegeneinander
mit roten und gelben Spielsteinen (Kugeln). Beginnend bei einer
Startstellung, in der jeder Spieler 14 Kugeln besitzt, wird abwechselnd
gezogen, bis ein Spieler 6 Kugeln des Gegners aus dem Spielfeld gedr&auml;ngt
hat.</para>

    <para>
Das urspr&uuml;ngliche Programm wurde 1993 f&uuml;r DOS und f&uuml;r Xlib geschrieben.
F&uuml;r KDE wurde das Programm in großen Teilen neu geschrieben.</para>

    <note>
      <para>Die Spielidee stammt nicht von mir. Abalone gibt es als echtes
Brettspiel, das soweit ich weiß von einer deutschen Firma vertrieben wird.
   </para> </note>

</chapter>



  <chapter id="RulesoftheGame">
    <title>Spielregeln f&uuml;r Abalone</title>

    <para><orderedlist>
	<listitem>
	  <para>Der Spieler mit den roten Kugeln beginnt.</para>
	</listitem>
	<listitem>
	  <para>Zwei Arten von Z&uuml;gen sind erlaubt:<variablelist>
	      <varlistentry>
		<term>Normaler Zug</term>
		<listitem>
		  <para>
Eine, zwei oder drei Kugeln in einer Linie k&ouml;nnen um eins nach vorn
geschoben werden. Dabei sind 6 Richtungen m&ouml;glich. Seitliches
Verschieben ist ebenfalls erlaubt.</para>

		  <para>
F&uuml;r einen Zug muss die <mousebutton>linke Maustaste</mousebutton> &uuml;ber der
zu schiebenden Kugel gedr&uuml;ckt werden. Die Kugel &auml;ndert daraufhin ihre Farbe.
Nun ziehen Sie die Maus mit gedr&uuml;ckter Taste in die gew&uuml;nschte Richtung.
Wenn der Zug erlaubt ist, wandelt sich der Zeiger
in einen Pfeil in die entsprechende Richtung, und alle betroffenen
Kugeln &auml;ndern ihre Farbe. Durch Loslassen der Maustaste wird der Zug
ausgef&uuml;hrt.</para>

		  <para>
Um zwei Kugeln seitlich zu schieben, klickt man zwischen die zwei Kugeln;
drei Kugeln werden durch Dr&uuml;cken der mittleren Maustaste auf die
mittlere Kugel angesprochen. Wenn ein seitlicher Zug erlaubt ist, &auml;ndern
die Kugeln Ihre Farbe. Wenn der Zug nicht erlaubt ist, &auml;ndert nur die
mittlere Kugel ihre Farbe und Sie k&ouml;nnen nur einen normalen Zug
ausf&uuml;hren.</para>
		</listitem>
	      </varlistentry>
	      <varlistentry>
		<term>Anschiebe-Zug</term>
		<listitem>
		  <para>
Maximal zwei Kugeln des Gegners k&ouml;nnen vor den eigenen Kugeln
hergeschoben werden, n&auml;mlich dann, wenn die eigenen Kugeln in der Zahl
&uuml;berlegen sind. Das heißt: mit zwei Kugeln kann man eine Kugel des
Gegners schieben, und mit drei entsprechend eine oder zwei.</para>
		  <para>
Besondere Anschiebe-Z&uuml;ge sind solche, die gegnerische Kugeln aus dem
Spielfeld dr&auml;ngen. Wenn man 6 Kugeln des Gegners so rausgeschoben hat,
hat man das Spiel gewonnen.</para>
		</listitem>
	      </varlistentry>
	    </variablelist></para>
	</listitem>
      </orderedlist></para>

    <para>
Wenn Ihnen immer noch nicht klar ist, wie das Spiel funktioniert, schauen
Sie sich doch einfach ein Spiel an, bei dem der Computer beide Seiten
spielt. Dazu w&auml;hlen Sie einfach <menuchoice>
	<guimenu>Einstellungen</guimenu>
	<guisubmenu>Computer spielt</guisubmenu>
	<guimenuitem>Beide Seiten</guimenuitem>
      </menuchoice>
und starten ein neues Spiel.</para>
  </chapter>



<chapter id="TheUserInterface">
<title>Die Benutzeroberfl&auml;che</title>

    <para>
Wie man Spielz&uuml;ge ausf&uuml;hrt ist im Kapitel
<link linkend="RulesoftheGame">Spielregeln</link>beschrieben.
Die Kn&ouml;pfe in der Werkzeugleiste haben die gleiche Bedeutung wie die
Eintr&auml;ge im Datei- bzw. im Bearbeiten-Men&uuml;.
</para>


    <sect1 id="fileMenu">
      <title>Das Datei-Men&uuml;</title>

<para><variablelist>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut><keycap>F2</keycap></shortcut>
		<guimenuitem>Neues Spiel</guimenuitem></menuchoice></term>
	    <listitem>
	      <para>
<action>Startet ein neues Spiel.</action> Dies ist jederzeit, auch w&auml;hrend eines
laufenden Spieles, m&ouml;glich.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut><keycap>S</keycap></shortcut>
		<guimenuitem>Suche unterbrechen</guimenuitem></menuchoice></term>
	    <listitem>
	      <para>
<action>Wenn der Computer &uuml;ber einen Zug nachdenkt, kann damit dessen Suche
unterbrochen werden. Er w&auml;hlt dann den Zug, den er bis jetzt als
Besten erachtet.</action></para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut>
		  <keycombo>
		    <keysym>Bild Aufw&auml;rts</keysym>
</keycombo>
		</shortcut>
		<guimenuitem>Zur&uuml;cknehmen</guimenuitem></menuchoice></term>
	    <listitem>
	      <para>
<action>Nimmt einen Zug zur&uuml;ck.</action> Tats&auml;chlich werden zwei Z&uuml;ge
zur&uuml;ckgenommen: ein Zug des Gegners und ein eigener, so dass man
wieder an der Reihe ist. Etwa 100 Z&uuml;ge k&ouml;nnen zur&uuml;ckgenommen
werden. Wenn Sie sich im Modus "&Auml;ndern" befinden (sehen Sie dazu
<menuchoice><guimenu>Bearbeiten</guimenu><guimenuitem>&Auml;ndern</guimenuitem></menuchoice>
unten), wird durch diese Funktion die Nummer des Zuges um eins
erniedrigt.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut>
		  <keysym>Bild Abw&auml;rts</keysym>
		</shortcut>
		<guimenuitem>Vorw&auml;rts</guimenuitem>
	      </menuchoice></term>
	    <listitem>
	      <para>
Diese Funktion ist nur n&uuml;tzlich im Modus "&Auml;ndern":
<action>Erh&ouml;ht die Nummer des Zuges dieser Position</action></para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut><keycap>H</keycap></shortcut>
		<guimenuitem>Vorschlag</guimenuitem>
	      </menuchoice></term>
	    <listitem>
	      <para><action>Zeigt Ihnen einen Vorschlag des Computers an.
</action> Dies ist nur m&ouml;glich im Schwierigkeitsgrad "Normal"
oder h&ouml;her, die Nummer des Zugs gr&ouml;ßer als zwei ist und Sie
Ihren Zug nicht zur&uuml;cknehmen.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut><keycap>N</keycap></shortcut>
		<guimenuitem>Netzwerk</guimenuitem>
	      </menuchoice></term>
	    <listitem>
	      <para>
<action>Wenn dieser Option aktiviert ist, befindet sich das Programm im
Netzwerk-Modus.</action> Alle <application>KAbalone</application>-Programme,
die sich im  Netzwerk-Modus befinden, senden sich &Auml;nderungen der Positionen
zu. Das erm&ouml;glicht es Ihnen, gegen einen Gegner auf einem anderen Computer
zu spielen oder das Spiel eines anderen
<application>KAbalone</application>-Programms zu beobachten.</para>
	      <para>
Um die Positionen auszutauschen, m&uuml;ssen die
<application>KAbalone</application>-Programme von einander wissen. Wenn die
Programme auf dem gleichen Computer laufen, m&uuml;ssen Sie keine weiteren
Angaben machen. Wenn sie auf
verschiedenen Computern laufen, m&uuml;ssen Sie die Adresse des anderen
Computers auf der Befehlszeile mit der Option <option>-h</option>
angeben.</para>
	      <para>
F&uuml;r Experten: <application>KAbalone</application> beobachtet im Netzwerk-Modus
einen TCP-Socket,
ob Positions&auml;nderungen eines anderen
<application>KAbalone</application>-Programms ankommen.
Sie k&ouml;nnen die Portnummer mit der Befehlszeilen-Option
<option>-p</option> Sie ben&ouml;tigen diese Option, wenn Sie mehrere verschiedene
<application>KAbalone</application>-Netzwerkspiele spielen wollen.</para>

	      <para>
Beispiele:<itemizedlist>
		  <listitem>
<para>
Chris auf Maschine1 und Maria auf Maschine2 wollen gegeneinander
spielen: Maria startet einfach <application>KAbalone</application>, wechselt in
den Netzwerk-Modus und setzt
<menuchoice><guimenu>Einstellungen</guimenu><guisubmenu>Computer spielt</guisubmenu>
		      </menuchoice> auf <guimenuitem>Kein<!--FIXME--></guimenuitem>.
Chris startet <application>KAbalone</application> mit
<command>kabalone -h Maschine2</command> und macht ansonsten die gleichen
Einstellungen wie Maria. Jetzt kann einer der beiden das Spiel beginnen
und mit den roten Spielsteinen ziehen. Jederzeit, wenn in einem Programm
eine Position ge&auml;ndert wird, wird das automatisch im anderen
Programm nachvollzogen.</para>
		  </listitem>
		  <listitem>
		    <para>
John will das Spiel beobachten: Er macht das gleiche wie Chris, aber
er macht selbst keinen Zug.</para>
		  </listitem>
		  <listitem>
		    <para>
Zwei verschiedene <application>KAbalone</application>-Netzwerkspiele sollen
auf den Rechnern m1 und m2 gespielt werden. Um die Spiele zu
unterscheiden, w&auml;hlen wir f&uuml;r eines den Port Nummer 12345. Auf m1
starten wir einmal <application>KAbalone</application> wie immer und einmal
mit <command>kabalone -p 12345</command>. Auf m2 starten wir mit
<command>kabalone -h m1</command> und <command>kabalone -h m1:12345</command>
(Der Doppelpunkt trennt den Rechnernamen von der Portnummer).</para>
	    </listitem>
		</itemizedlist></para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<shortcut>
		  <keycombo>
		    <keycap>Strg</keycap><keycap>Q</keycap>
		  </keycombo></shortcut>
		<guimenuitem>Beenden</guimenuitem>
	      </menuchoice></term>
	    <listitem>
	      <para><action>Beendet <application>KAbalone</application>.</action></para>
	    </listitem>
	  </varlistentry>
	</variablelist></para>
    </sect1>

    <sect1 id="editMenu">
      <title>Das Bearbeiten-Men&uuml;</title>
      <variablelist>
	<varlistentry>
	  <term><menuchoice>
	      <shortcut>
		<keycombo><keycap>Strg</keycap><keycap>Einfg</keycap></keycombo>
	      </shortcut>
	      <guimenuitem>Modify<!--FIXME--></guimenuitem>
	    </menuchoice></term>
	  <listitem>
	    <para>
Schaltet <application>KAbalone</application> in den Modify-Modus. In diesem
Modus k&ouml;nnen Sie das Spielfeld bearbeiten, indem Sie rote oder gelbe
Spielsteine hinzuf&uuml;gen oder l&ouml;schen. Die Statuszeile zeigt die Anzahl
der roten und gelben Steine an, die Nummer des Zugs, der Spieler,
der den n&auml;chsten Spielzug machen muss, und ob die Position g&uuml;ltig ist:
Ein Ausrufezeichen meint Nein, ein Haken meint Ja. Wenn die Position
ung&uuml;ltig ist, und Sie in den normalen Spielmodus zur&uuml;ck wechseln
wollen, k&ouml;nnen Sie nicht spielen! Nur g&uuml;ltige Positionen k&ouml;nnen als
Startpositionen eines Spieles verwendet werden.
<note><para>
Wenn <application>KAbalone</application> sich im Netzwerk-Modus befindet,
wird die Position erst gesendet, wenn Sie in den normalen
Spielmodus zur&uuml;ckschalten. <guimenuitem>Zur&uuml;cknehmen</guimenuitem> und
<guimenuitem>Vorw&auml;rts</guimenuitem> erniedrigen und erh&ouml;hen einfach
die Nummer des Spielzugs ohne einen Stein zu &auml;ndern.</para></note>
</para>

	    <para>
Benutzung: Wenn Sie die <mousebutton>linke oder rechte Maustaste</mousebutton>
auf einem leeren oder gelben Feld dr&uuml;cken, gelangen Sie in den
Modus "Rote Spielsteine hinzuf&uuml;gen"; wenn Sie die
<mousebutton>mittlere Maustaste</mousebutton> auf einem leeren oder roten
Feld dr&uuml;cken, gelangen Sie in den Modus "Gelbe Spielsteine hinzuf&uuml;gen".
Wenn Sie die <mousebutton>linke oder rechte Maustaste</mousebutton> auf einem
roten Feld, bzw. die <mousebutton>mittlere Maustaste</mousebutton> auf einem
gelben Feld dr&uuml;cken, gelangen Sie in den Modus "Spielsteine l&ouml;schen".
Sie bleiben so lange in einem Modus, wie Sie die Maustaste gedr&uuml;ckt halten.
Alle Felder, die Sie in einem Modus &uuml;berstreichen, werden bearbeitet.
</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term><menuchoice>
	      <shortcut>
		<keycombo><keycap>Strg</keycap><keycap>C</keycap></keycombo>
	      </shortcut>
	      <guimenuitem>Kopieren</guimenuitem>
	    </menuchoice></term>
	  <listitem>
	    <para>
<action>Kopiert eine ASCII-Abbild des aktuellen Spielbretts in die
Zwischenablage.</action> Sie k&ouml;nnen dieses dann in jeden Texteditor
&uuml;bernehmen, indem Sie dort die
<mousebutton>mittlere Maustaste</mousebutton> dr&uuml;cken.
</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term><menuchoice>
	      <shortcut>
		<keycombo><keycap>Strg</keycap><keycap>V</keycap></keycombo>
	      </shortcut>
	      <guimenuitem>Einf&uuml;gen</guimenuitem>
	    </menuchoice></term>
	  <listitem>
	    <para>
<action>Interpretiert den Inhalt der Zwischenablage als ASCII-Abbild
eines <application>KAbalone</application>-Spielbretts und benutzt dieses
als aktuelle Position.</action> Ein g&uuml;ltiges ASCII-Abbild wird
durch <guimenuitem>Kopieren</guimenuitem> erstellt.
</para>
	    <para>
Auf diesem Weg k&ouml;nnen Sie Spielpositionen zwischen zwei
<application>KAbalone</application>-Programmen austauschen. Aber dies kann
auch einfacher &uuml;ber den Netzwerk-Modus geschehen. Eine andere
M&ouml;glichkeit ist es, auf diesem Weg, eine Position in einer Textdatei
zu speichern und diese dann sp&auml;ter wieder herzustellen.
</para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term><menuchoice>
	      <shortcut>
		<keycombo><keycap>Strg</keycap><keycap>O</keycap></keycombo>
	      </shortcut>
	      <guimenuitem>Stellung restaurieren</guimenuitem></menuchoice></term>
	  <listitem>
	    <para>
<action>Stellt eine vorher gespeicherte Stellung wieder her.</action></para>
	  </listitem>
	</varlistentry>
	<varlistentry>
	  <term><menuchoice>
	      <shortcut>
		<keycombo><keycap>Strg</keycap><keycap>S</keycap></keycombo>
	      </shortcut>
	      <guimenuitem>Stellung speichern</guimenuitem></menuchoice></term>
	  <listitem>
	    <para>
<action>Speichert die aktuelle Stellung ab.</action></para>
	  </listitem>
	</varlistentry>
      </variablelist>

    </sect1>




    <sect1 id="optionsMenu">
      <title>Das Einstellungen-Men&uuml;</title>

      <para><variablelist>
	  <varlistentry>
	    <term><menuchoice>
		<guisubmenu>Spielst&auml;rke</guisubmenu></menuchoice></term>
	    <listitem>
	      <para>
Es kann unter vier Spielst&auml;rken des Computers ausgew&auml;hlt werden. Dies
beeinflusst die Anzahl Z&uuml;ge, die der Computer im Voraus berechnet,
um den besten Zug zu finden. Unterbrochen werden kann die Suche mit der
Taste <keycap>S</keycap>.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<guisubmenu>Computer spielt</guisubmenu></menuchoice></term>
	    <listitem>
	      <para>
Der Computer kann Rot, Gelb oder beide Seiten &uuml;bernehmen. Dies kann
jederzeit (nicht nur vor Spielbeginn) ge&auml;ndert werden, um
beispielsweise die Seite zu wechseln (wenn man zu schlecht spielt).
W&auml;hlen Sie "<guimenuitem>Kein</guimenuitem>"<!--FIXME-->, wenn Sie gegen einem
Freund spielen wollen. Diese Einstellung ist außerdem
sinnvoll im Netzwerk-Modus.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<guisubmenu>Langsam ziehen</guisubmenu></menuchoice></term>
	    <listitem>
	      <para>
Ein Computerzug wird dadurch angezeigt, dass die am Zug beteiligten
Kugeln vor dem eigentlichen Zug zu blinken beginnen und ihre Farbe
&auml;ndern (wenn diese Option angew&auml;hlt ist). Ein Abw&auml;hlen
verhindert diese etwas langsame (Pseudo-) Animation. Dann wechseln die
entsprechenden Kugeln nur kurzzeitig ihre Farbe, ohne zu blinken; dies ist
deutlich schneller.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<guimenuitem>Render Balls<!--FIXME--></guimenuitem>
	      </menuchoice></term>
	    <listitem>
	      <para>
Wenn dies aktiviert ist, werden die Spielsteine bei Bedarf
(z.B. beim &Auml;ndern der Fenstergr&ouml;ße) von einem einfachen internen
Raytracer gerendert.
</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<guimenuitem>Spion</guimenuitem></menuchoice></term>
	    <listitem>
	      <para>
Ist die Option Spion angew&auml;hlt, so werden in der Statuszeile
Informationen zum aktuellen Zug - sowohl des Spielers als auch eines
momentan besten Zuges des Computers - angezeigt: der Zug selbst sowie eine
vom Computer errechnete Verbesserung (positiv) oder Verschlechterung
(negativ) der aktuellen Stellungsbewertung durch den Zug.</para>
	    </listitem>
	  </varlistentry>
	  <varlistentry>
	    <term><menuchoice>
		<guimenuitem>Speichern</guimenuitem></menuchoice></term>
	    <listitem>
	      <para>
Speichert die Einstellungen in der Konfigurationsdatei der Anwendung.
Diese werden beim Start von <application>KAbalone</application> automatisch
wieder hergestellt.</para>
	    </listitem>
	  </varlistentry>
	</variablelist></para>
    </sect1>
  </chapter>

  <chapter id="commandolineoptions">
    <title>Kommandozeilen-Optionen</title>
    <para><cmdsynopsis>
	<command>kabalone</command>
	<group>
	  <arg>-p <replaceable>portnummer</replaceable></arg>
	</group>
	<group>
	  <arg rep="repeat">-h <replaceable>rechnername</replaceable>
<group><replaceable>:portnummer</replaceable></group></arg>
	</group>
      </cmdsynopsis></para>
    <para>
Mit der Option <option>-p</option> k&ouml;nnen Sie die Portnummer
des zu beobachtenden TCP Sockets angeben.</para>
    <para>
Mit der Option <option>-h</option> k&ouml;nnen Sie die Adresse eines
<application>KAbalone</application>-Prozesses auf einem anderen Rechner
angeben, mit dem Sie kommunizieren wollen. Die Portnummer ist
optional und muss nur angegeben werden, wenn der andere Prozess
nicht die Standard-Portnummer benutzt. Sie k&ouml;nnen auch mehrere
entfernte Prozesse angeben.
</para>
  </chapter>


<chapter id="credits">
<title>Mitwirkende und Lizenz</title>
    <para>
<application>KAbalone</application> Copyright 1997, 1998 Josef Weidendorfer
<email>weidendo@informatik.tu-muenchen.de</email></para>
    <para>
<application>KAbalone</application> ist unter den Bestimmungen der
<ulink url="common/gpl-license.html">GNU GPL</ulink> ver&ouml;ffentlicht.
</para>


    <para>
Entwickler:<itemizedlist>
	<listitem>
	  <para>Johannes Weidendorfer 
<email>weidendo@informatik.tu-muenchen.de</email></para>
	</listitem>
      </itemizedlist></para>
    <para>
Dokumentation:<itemizedlist>
	<listitem>
	  <para>Johannes Weidendorfer 
<email>weidendo@informatik.tu-muenchen.de</email></para>
	</listitem>
      </itemizedlist></para>
    <para>
Deutsche &Uuml;bersetzung:<itemizedlist>
	<listitem>
	  <para>Matthias Kiefer <email>matthias.kiefer@gmx.de</email></para>
	</listitem>
	<listitem>
	  <para>Oliver Hensel <email>oliver.hensel@gmx.de</email></para>
	</listitem>
      </itemizedlist></para>

  </chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
