
Patience - ein Spiel für Geduldige
                     8. Aug 95

1     Einleitung

Was ist denn das Besondere an dieser Patience?

Es sind sechs verschiedene Regelsätze vorgegeben, nach denen die
Karten gelegt werden können.

Es besteht die Möglichkeit, beliebig viele Spielzüge (im
Extremfall alle bis zum Beginn des Spiels) rückgängig zu machen.

Der gegenwärtige Spielzustand kann abgespeichert werden, um ihn
später wieder einladen zu können - vielleicht geht das Spiel ja
dann besser auf.

Es werden auf Wunsch Vorschläge gemacht, welche Spielzüge noch
möglich sind.

Es kann in einer Streitpatience gegen den Computer oder gegen
eine andere Spielerin (evtl. an einem anderen Computer) gekämpft
werden.

Wenn bereits absehbar ist, daß das Spiel aufgeht, ist kein
mühseliges Dauerklicken nötig; das Programm legt alle Karten
selbsttätig auf die Stöcke ab.

Wer unbedingt will, kann sogar mogeln.

Es kann (für jede Regelart) eine Demo gefahren werden, die einen
ungefähren Eindruck vermittelt, wie das Spiel zu lösen wäre.

Das Ganze ist programmiert in Tcl/Tk, so daß es in ca. 10
Sekunden auf jedem Rechner installiert werden kann, auf dem
tcl7.4 und tk4.0 (oder tcl7.3 und
tk3.6) existiert.

Die Karten werden als französisches Blatt dargestellt auf einer
Spielfläche der Größe 640*400 Bildpunkte. Es können jedoch auch
andere Kartenfonts aus den mitgelieferten ausgesucht werden.
Es existiert ein Kartenfont im Gif-Format, mit dem mehrfarbige
Karten dargestellt werden.

Es gibt einen Regeleditor, mit dem neue Regelsätze
zusammengestellt (und abgespeichert) werden können, die dann
zusätzlich zu den ausgelieferten sechs Spielarten gespielt werden
können.

Das Programm ist mehrsprachig; d.h. abhängig von einer Resource
besitzt es eine deutsche oder englische Benutzeroberfläche.

Als Hilfesystem wird tkman benutzt, falls das Programm
auf dem aktuellen Display läuft.

2     Regeln

2.1   Die Karten

Alle Patiencen werden, unabhängig von den weiteren Regeln, mit
Rommee-Karten gespielt. Ein Kartensatz besteht aus 52 Karten,
nämlich den Werten 2 bis 10,  Bube, Dame, König, As jeweils in
den Farben Karo, Herz, Pik und Kreuz. Von Patienceregel zu
-regel unterschiedlich wird mit einem oder zwei Kartensätzen gespielt,
soll heißen, es befinden sich 52 oder 104 Karten im Spiel.

2.2   Die Spielfläche


Die Hand

Zu Anfang befinden sich alle am Spiel teilnehmenden Karten auf der
Hand (die auf der Spielfläche immer rechts unten dargestellt wird) und
werden gemischt.


Die Stapel

Aus der gut durchgemischten Hand werden die Stapel mit einer oder
mehreren Karten aufgefüllt. Die Stapel befinden sich am oberen
Spielflächenrand und sind von links anfangend nebeneinander
aufgereiht. Von den Regeln abhängig existieren durchaus
unterschiedlich viele Stapel: Canfield besitzt z.B. nur vier, bei der
Spinne gibt es die größtmögliche Anzahl von zehn Stapeln.

Die oberste Karte des Stapels liegt offen, d.h. Wert und Farbe ist
erkennbar, alle evtl. darunter befindlichen Karten sind normalerweise
verdeckt, es ist also nur ihr Rücken zu sehen. Nur in der Patience
Seehafen sind alle Karten, die auf den Stapeln zu liegen kommen,
von Anfang an aufgedeckt.

Wie viele Karten auf einem Stapel liegen, ist wieder abhängig von den
Regeln; die kleine Harfe z.B. verdient ihren Namen der Tatsache, daß
sich von rechts nach links zunehmend immer eine Karte mehr verdeckt
auf dem Stapel befindet.


Der Talon

In einigen Patiencen existiert ein Talon. Das ist ein Kartenstapel,
der sich direkt neben der Hand befindet, und dessen oberste Karte
sichtbar ist.
Beim Geben wird nach dem Füllen der Stapel eine feste Anzahl von
Karten von der Hand auf den Talon umgeschichtet, bei der kleinen Harfe
z.B. drei. Existiert kein Talon, wird beim Geben jeweils eine Karte
pro Stapel von der Hand genommen und auf den Stapel gelegt.


Der Strafstapel

Außerdem kann es in einer Patience noch den sogenannten Strafstapel
geben - manchmal auch fauler Haufen genannt. Er wird in der linken
unteren Ecke dargestellt und setzt sich aus einer vorgegebenen Anzahl
von Karten zusammen, die beim Geben vor dem Aufbau der Stapel von der
Hand genommen werden. Wie beim Talon kann auch hier nur der Wert der
oberste Karte gesehen werden.


Die Stöcke

Am rechten Bildrand sind die Stöcke erkennbar. Das Ziel des Spiels ist
es, alle Karten auf die Stöcke zu plazieren. Bereits durch den
Untergrund eines leeren Stocks ist erkennbar, das jeder Stock nur für
eine Farbe reserviert ist, der oberste z.B. für Karo. Abhängig von der
Anzahl der im Spiel befindlichen Karten gibt es vier oder acht Stöcke,
nämlich für jede Farbe jedes Kartensatzes einen.


Die Arbeitsstapel

Links von den Stöcken gibt es evtl. noch eine Reihe sogenannter
Arbeitsstapel, auf denen jede beliebige Karte zwischengelagert werden
darf; pro Arbeitsstapel jedoch nur jeweils eine Karte.




Die Spielfläche in einer Streitpatience


In einer Streitpatience ist nicht alles uneingeschränkt gültig,
was in den vorhergehenden Abschnitten beschrieben wurde.

Sowohl die Spielerin als auch die Gegnerin (egal ob Computer oder eine
andere Patiencespielerin) besitzen eine eigene Hand, die der Gegnerin
ist rechts unten, die der Spielerin links unten dargestellt. Auf jeder
Hand wird ein Satz Karten getrennt gemischt; es ist also
sichergestellt, daß am Spielanfang jede Karte in jeder Hand einmal
enthalten ist.

Die Talons und Strafstapel sind ebenfalls doppelt vorhanden, auch
hier wieder die der Gegnerin rechts unten, die der Spielerin links.

Während eines Spiels ist immer einer der Teilnehmer an der Reihe,
d.h entweder die Gegnerin oder die Spielerin darf Karten bewegen.
Am unteren Rand der Spielfläche in der Mitte ist ein großer Knopf
angebracht, der den Namen des Teilnehmers anzeigt, der gerade Karten
bewegen darf. Entweder an der linken oder rechten Seite des Knopfes
befindet sich eine rote Pfeilspitze, die auf die privaten Stapel des
aktiven Teilnehmers verweist.

Der Knopf mit dem Namen des aktiven Teilnehmers hat die Funktion einer
Schachuhr; kann die Spielerin keine Karten mehr bewegen, so drückt sie
auf den Knopf zum Zeichen, daß die Gegnerin oder der Computer an der
Reihe ist. Die Beschriftung des Knopfes wird sich ändern (der Name der
Gegnerin oder das Wort Computer wird angezeigt) und die
Gegnerin spielt so lange wie möglich, bevor wieder der Namen der
Spielerin im Knopf erscheint.




Wer fängt an?

Zu Beginn einer Streitpatience wird ermittelt, wer anfängt,
d.h. wessen Name in der Schachuhr erscheint (und damit, wer zuerst das
Recht bekommt, Karten bewegen zu dürfen). Das geschieht durch Abheben;
beide Hände werden gemischt und aus jeder wird eine Karte gezogen.
Die Karten werden verglichen, und die Spielerin mit der höherwertigen
Karte fängt an; bei gleichem Kartenwert gilt die Reihenfolge Kreuz
über Pik über Herz über Karo.

2.3   Das Verschieben

Die Spielerin kann mit der Maus den Mauszeiger über einer Karte ihrer
Wahl plazieren. Falls sie dann die linke Maustaste drückt, wird die
Karte dem Mauszeiger folgen, solange die linke Maustaste gedrückt
bleibt. Bildlich gesprochen hat die Spielerin gerade die Karte
aufgenommen, über der Spielfläche herumgetragen und schließlich wieder
fallengelassen. 

Falls auf einem Stapel eine verdeckte Karte (also mit dem Rücken nach
oben) liegt, kann sie durch Anklicken mit der linken Maustaste
umgedreht werden.


Das Verschieben von Einzelkarten


Falls sich der neue Standort der Karte nicht einem der Stöcke oder
Stapel (inklusive Talon, Straf- oder Arbeitsstapel) zuordnen läßt,
wird die Karte automatisch an den Startpunkt der Reise
zurückbefördert. Ansonsten wird überprüft, ob der neue Standort den im
folgenden beschriebenen Regeln gehorcht, und, falls das nicht der Fall
ist, wird die Karte ebenfalls zum Ausgangsort zurückgebracht.

In einer Streitpatience darf keine Karte von den Stapeln der Gegnerin
(Hand, Talon und Strafstapel) in der rechten unteren Ecke genommen
werden.

Erscheint alles korrekt, kommt die Karte fein säuberlich ausgerichtet
auf ihrem neuen Platz zu liegen. Über alle korrekt durchgeführten Züge
wird intern Buch geführt, was dazu führt, daß der Computer genau
weiß, wieviele Züge für die Patience benötigt wurden, um z.B. in der
Gratulation
die Anzahl der benötigten Züge mitzuteilen. Dadurch wird es aber auch
der Spielerin möglich, sämtliche Züge auf Wunsch rückgängig zu machen
- mit welchen Kommandos, wird in Abschnitt Zurück gesagt. 



Das Verschieben von Teilstapeln


Wenn auf einem Stapel mehrere offene Karten passend übereinander
liegen, können sie auch als Stapel verschoben werden. Dazu wird mit
der Maus die unterste Karte des Teilstapels, der verschoben werden
soll, angeklickt und "`umhergetragen"'. Falls die angeklickte unterste
Karte auf die oberste Karte des Zielstapels paßt, wird der ganze
Teilstapel auf den neuen Stapel gelegt.


Teilstapel können nur auf die normalen Stapel, nicht jedoch auf den
Talon, Stock, Arbeits- oder Strafstapel gelegt werden.
Hinweis: Bezüglich des Stocks ist letzteres in der Spinne nicht ganz
richtig, wie im nächsten Abschnitt erläutert wird.

Es wurde in den letzten Absätzen zwar immer von Teilstapel geredet, es
kann jedoch auch ein gesamter Stapel verschoben werden, wenn er von der
obersten bis zur untersten Karte paßt.


Wann paßt eine Karte auf einen Stock


Auf einen Stock, auf dem sich bereits mindestens eine Karte befindet,
kann die nächsthöhere Karte gleicher Farbe abgelegt werden; also paßt
auf eine Pik Zehn der Pik Bube. Auf einen leeren Stock darf nur die
niedrigste Karte des Spiels gelegt werden - in der Regel das As.
Bei Canfield wird die niedrigste Karte dadurch bestimmt, daß die
oberste Karte der Hand nach dem Geben automatisch auf den Stock gelegt
wird und damit den niedrigsten Wert bestimmt. Da jetzt der König
nicht mehr unbedingt der höchste Wert ist, kann das As (quasi
zyklisch) auf ihn gelegt werden.


In der Spinne gibt es die Regel, daß eine Familie nur komplett auf den
Stock gelegt werden darf. Dann muß die Familie auf den normalen
Stapeln zusammengebracht werden und mit einem Zug als Teilstapel auf
den Stock geschoben werden. Hier ist das Spiel bereits auch dann schon
beendet, wenn sich alle Familien komplett auf den Stapeln befinden;
sie müssen dann nicht mehr abgelegt werden
. Da dieses Situation schwerer zu erreichen ist als alle Familien auf
den Stöcken zu plazieren, gilt es in der Spinne sogar als höchstes
Spielziel.


Wann paßt eine Karte auf einen Stapel


Bei den Stapeln ist es normalerweise wie folgt: Hier paßt nur der
nächstkleinere Wert auf eine bereits liegende Karte, und es gilt die
Regel: "`Rot auf Schwarz, Schwarz auf Rot."'  Auf eine Kreuz Neun kann
also z.B. die Karo Acht oder die Herz Acht gelegt werden. Auf einen
leeren Stapel paßt jede Karte.

Wie von jeder Regel gibt es auch hier Ausnahmen:

Bei der kleinen Harfe darf nur die höchste Karte (also ein König) auf
einen leeren Stapel gelegt werden.

Bei der Spinne paßt eine Karte auf jede Karte mit dem nächstgrößeren
Wert; einen beweglichen Teilstapel bilden jedoch nur Karten gleicher
Farbe. Wenn also eine Stapel aus einer Kreuz Neun sowie Herz Acht,
Sieben und Sechs besteht, so dürfen nur die oberen drei Karten als
Teilstapel bewegt werden. Es paßt jetzt zwar eine Kreuz Fünf auf
diesen Stapel, er kann danach aber nicht mehr als Teilstapel bewegt
werden.

Bei Seehafen paßt eine Karte nur dann auf einen Stapel, wenn die den
nächstkleineren Wert der selben Farbe wie die oberste Karte des
Stapels besitzt.



2.4   Die Spiele

Es werden sechs verschiedene Arten von Patiencen ausgeliefert: die
Standardpatience, Canfield, die Kleine Harfe, die Spinne, Seehafen und
die Streitpatience. Im folgenden werden von diesen sechs Spielen die
Unterschiede in den Regeln aufgeführt.


Standard-Patience

Es wird mit zwei Kartensätzen (also 104 Karten) gespielt. Es existiert
weder ein Talon noch ein Straf- oder Arbeitsstapel, aber acht Stapel,
die zu Beginn des Spiels jeweils drei Karten enthalten. Auf einen
leeren Stock darf nur ein As gelegt werden, auf einen leeren Stapel
jede Karte. Auf einen belegten Stapel paßt eine absteigend unechte
Karte, die dann mit den darunter liegenden Karten einen beweglichen
Teilstapel bildet.


Kleine Harfe

Es wird mit einem Kartensatz (also 52 Karten) gespielt. Es existiert
kein Straf- oder Arbeitsstapel, jedoch ein Talon, der mit jeweils drei
Karten gefüllt wird, und sieben Stapel, die zu Beginn des Spiels
zwischen sieben und einer Karten enthalten. Auf einen leeren Stock
darf nur ein As gelegt werden, auf einen leeren Stapel nur ein König.
Auf einen belegten Stapel paßt eine absteigend unechte Karte, die dann
mit den darunter liegenden Karten einen beweglichen Teilstapel bildet.


Canfield

Es wird mit einem Kartensatz (also 52 Karten) gespielt. Es existiert
ein Strafstapel mit dreizehn Karten, ein Talon, der mit jeweils drei
Karten gefüllt wird, vier Stapel, die zu Beginn des Spiels jeweils
eine Karte enthalten, jedoch keine Arbeitsstapel. Auf einen leeren
Stock darf nur die niedrigste Karte (die oberste der Hand) gelegt
werden, auf einen leeren Stapel jede Karte.
Auf einen belegten Stapel paßt eine absteigend unechte Karte, die dann
mit den darunter liegenden Karten einen beweglichen Teilstapel bildet.


Spinne

Es wird mit zwei Kartensätzen (also 104 Karten) gespielt. Es existiert
weder ein Talon noch ein Straf- oder Arbeitsstapel, aber zehn Stapel,
die zu Beginn des Spiels jeweils fünf oder sechs Karten enthalten. Auf
den Stock dürfen nur komplette Familien gelegt werden, auf einen
leeren Stapel jede Karte.
Auf einen belegten Stapel paßt eine absteigend Karte egal welcher
Farbe, die aber nur mit der darunter liegenden echten Reihe einen
beweglichen Teilstapel bildet.


Seehafen

Es wird mit einem Kartensatz (also 52 Karten) gespielt. Es existiert
weder ein Strafstapel noch ein Talon, jedoch vier Arbeitsstapel. Zu
Beginn des Spiels enthält jeder der zehn Stapel fünf offen liegende
Karten; zwei der Arbeitsstapel sind mit den beiden restlichen Karten
belegt. Auf einen leeren Stock darf nur ein As gelegt werden, auf
einen leeren Stapel jede Karte. Auf einen belegten Stapel paßt nur
eine absteigend echte Karte, Teilstapel können gar nicht
zusammenhängend bewegt werden.


Die Streitpatience

Es wird mit zwei Kartensätzen (also 104 Karten) gespielt. Es existiert
pro Streitpartei ein Strafstapel mit dreizehn Karten und ein Talon, der
mit jeweils einer Karten gefüllt wird. Es gibt acht Stapel, die zu Beginn
des Spiels jeweils eine Karte enthalten, jedoch keine Arbeitsstapel.
Auf einen leeren Stock darf nur ein As gelegt werden, auf einen leeren
Stapel jede Karte.
Auf einen belegten Stapel paßt eine absteigend unechte Karte,
Teilstapel können gar nicht zusammenhängend bewegt werden.

3     Kommandos

Im folgenden werden die aufrufbaren Kommandos beschrieben, und zwar
so gruppiert, wie sie im Menü zur Verfügung stehen. Abschließend gibt
es eine übersicht, welche Kommandos auch direkt mit der Tastatur
(Abschnitt Tastatur-Kommandos) oder den Maustasten (Abschnitt
Die Maustasten) aufgerufen werden können.

Hinweis: Alle Menüeinträge, die mit drei Punkten (einer Ellipse)
enden, führen zum Aufblenden eines neuen Fensters auf dem Bildschirm,
in dem die Spielerin einen Dialog führen kann, der im nachfolgenden
beim jeweiligen Kommando näher erläutert ist.

3.1   X

Hinter dem X-Logo versteckt sich der Erstellt von... Dialog,
der das Fenster aufblättert, das auf der Titelseite dieses Papiers zu
bewundern ist. Wer das Fenster genug studiert hat, kann den Okay
Button mit der Maustaste anklicken oder die Returntaste drücken, um
zum normalen Spiel zurückzukehren.

3.2   Patience


Spielregeln

Im obersten Teil des Menüs gibt es für jeden bekannten Regelsatz, der
keine Streitpatience beschreibt, einen Auswahlknopf, normalerweise
also Standard, Kl. Harfe, Canfield,
Seehafen und Spinne. Durch sie wird bestimmt, nach
welchen Regeln gerade gespielt wird.

Durch Anklicken einer Spielart kann ein neues Spiel gestartet werden.
Wurde in der gerade aktuellen Patience bereits mindestens ein Zug
gemacht, wird jedoch vor dem Starten des neuen Spiels zunächst
zurückgefragt, ob das alte Spiel wirklich beendet werden soll.

Die Knöpfe mit den Regelarten verhalten sich wie Radioknöpfe, wird
also durch Mausdruck ein Knopf aktiviert (Diamant am linken Rand wird
rot), deaktiviert das die anderen Knöpfe.


Streitpatiencen

Im nächsten Teil des Menüs geht es um Streitpatiencen. Im Eintrag
Streit mit ... wird zunächst der Name der Spielpartnerin
oder das Wort Computer angezeigt, je nachdem, mit wem gerade
gestritten wird.

Danach gibt es eine Liste aller bekannten Regelsätze für
Streitpatiencen, am linken Rand mit einem Diamant gekennzeichnet.
Normalerweise ist das nur ein Menüpunkt, nämlch Streitpatience.
Mit diesen Menüpunkten kann der aktuelle Regelsatz gewechselt oder ein
neues Spiel begonnen werden, genau wie im obigen Abschnitt
Spielregeln für Einzel-Patiencen beschrieben.

Die darunter befindlichen Menüpunkte Kontakt aufnehmen...,
Kontakt prüfen..., Kontakt synchronisieren... und
Streitbereit dienen zur Kontaktaufnahme mit einer anderen
Spielerin. Ihre genaue Funktion ist im Abschnitt
Streitpatience beschrieben.



Demo

Das Kommando Demo startet eine Demonstration, in der das
Programm selbstständig versucht, die Patience nach den gerade
eingestellten Regeln zu lösen. Bevor es eine Karte oder einen
Teilstapel verschiebt, wird mit einem Pfeil angezeigt, was als
nächsten passiert.

Die Zeit, die der Pfeil auf dem Bild zu sehen bleibt, kann in der
Funktion Warte n s... eingestellt werden. Nach
Anklicken dieses Kommandos öffnet sich ein Fenster
und durch Justieren des Schiebereglers kann die Wartezeit in
Zehntelsekunden eingestellt werden.



Bild erneuern

Die Kommando Bild erneuern löscht alle Elemente der Spielfläche und
baut sie neu auf. Dies kann u.a. dann nützlich sein, falls durch
widrige Umstände (Programmfehler) die Spielfläche nicht den
Spielzustand widerspiegelt.


Beenden

Das Kommando bereitet dem Ganzen ein Ende, nicht ohne vorher noch
nachzufragen, ob das derzeitige Spiel wirklich beendet werden soll.

3.3   Datei



Spielzustand

Das Kommando Speichern... schreibt den derzeitigen
Spielzustand in eine Datei, mit deren Hilfe das Kommando
Laden... ihn wieder restaurieren kann.


Beide Kommandos öffnen ein Fenster
, mit dem die Spielerin den externen Namen der Datei auswählen kann.

Unter der Überschrift, die klarmachen soll, wofür die auszusuchende
Datei benötigt wird, befinden sich die drei Einträge Ordner,
Datei und Maske.

Als Ordner wird die aktuelle Directory angezeigt, deren Inhalt
in der großen Fläche in der Mitte des Fensters, ab jetzt
Auswahlkasten genannt, angezeigt wird.

Der Eintrag Datei enthält den zuletzt mittels einfachen
Mausklick im Auswahlkasten ausgesuchten Dateinamen. Er wird vom
Programm mehr oder weniger sinnvoll vorgegeben; bei mehrmaligen Aufruf
des Dialogs enthält er den zuletzt ausgesuchten Dateinamen.

Der vollständige Pfadname einer Datei besteht aus dem an den
angezeigten Ordner angehängten Dateinamen.

Mit dem Eintrag Maske kann bestimmt werden, welche Dateien im
Auswahlkasten angezeigt werden sollen, nämlich nur solche, deren
Dateiname zu der Eingabe in diesem Feld paßt. Die zwei Zeichen mit
Sonderbedeutung sind das Fragezeichen ?, das für genau ein
beliebiges Zeichen steht, und der Stern *, der beliebig viele
beliebige Zeichen symbolisiert. Die Maske *.pat
steht also für alle Dateinamen mit .pat am Ende.

Im Auswahlkasten werden von oben alphabetisch sortiert zuerst alle
Directories, dann ebenfalls alphabetisch sortiert alle normalen
Dateien angezeigt.
Die im Kopf angegebene Maske gilt nur für normale Dateien, Directories
werden immer angezeigt, auch wenn ihr Name nicht zur Maske paßt.
Im Bild gibt es nach einer Menge von Directories nur eine Datei, die zu
der Maske paßt, nämlich die ausgesuchte Datei schwierig.pat.

Falls sich in der aktuellen Directory mehr Unterdirectories und
Dateien befinden, als im Auswahlkasten dargestellt werden können, kann
mit Hilfe des am rechten Rand befindlichen Scrollbalkens im
Auswahlkasten geblättert werden.

Das Anklicken des Namens einer normalen Datei führt, wie bereits
erwähnt, zu der Übernahme des Dateinamens in den Eintrag Datei;
das Anklicken eines Directorynamens führt dazu, daß der Eintrag
Ordner entsprechend modifiziert wird, und im Auswahlkasten
alle Dateien angezeigt werden, die sich in der ausgewählten Directory
befinden.

Die ersten Einträge im Auswahlkasten sind immer der Punkt . für
die aktuelle Directory und der Doppelpunkt .. für die
übergeordnete Directory. Ein Anklicken der aktuellen Directory ist
dann sinnvoll, wenn die Maske geändert wurde, da dann der Inhalt des
Auswahlkastens neu ermittelt wird.

Falls eine Datei nicht im Auswahlkasten erscheint, weil sie durch das
aufgerufene Kommando erst neu angelegt werden soll, kann der Name auch
direkt im Eintrag Datei eingegeben werden. Das geht natürlich
nur für Kommandos wie Schreiben..., und macht daher für das im
Bild datei angegebene Kommando Laden... nicht soviel
Sinn...

Durch Auswahl des unten rechts befindlichen Knopfes Okay wird
der aktuelle Pfadname bestätigt und der Dialog positiv beendet, durch
Auswahl von Abbruch wird der Dialog negativ beendet. Ein
Doppelklick auf einen Namen im Auswahlkasten ist wie ein einfaches
Klicken auf den Namen und ein anschließendes Betätigen des
Okay-Knopfes.


Regeln editieren...

Das Kommando eröffnet ein Fenster, mit dem der Regeleditor die zum
aktuellen Spiel gehörigen Regeln anzeigt. Sie können von der Spielerin
geändert, angewendet und gespeichert werden. Die Benutzung des
Regeleditors ist in Abschnitt Der Regeleditor beschrieben.


Sprache

Am unteren Ende des Menüs Datei gibt es Auswahlmöglichkeiten
für alle dem Programm bekannten Sprachen (z.Z. sind das deutsch und
englisch). Nach Auswahl einer Sprache wird das Menü neu aufgebaut und
ab sofort kommen alle Dialogkästen in der gewünschten Sprache. Auf
die Anzeige der Hilfetexte und die Dialoge zur Einstellung der
Wartezeit oder Kontaktaufnahme wirkt die Umstellung erst beim nächsten
Neuaufbau des entsprechenden Fensters.

3.4   Unterstützung

Das Menü ist eine Sammlung von Kommandos, die der Spielerin das Leben
leichter machen und die als Unterstützung zum leichteren Lösen der
Patience gedacht sind.


Vorschlag

Das Kommando Vorschlag zeigt eine mögliche Verschiebung durch
einen Pfeil an
.

Bei der Ermittlung des Vorschlags arbeitet das Programm die Reihe aller
möglichen Züge ab, bewertet sie und zeigt schließlich den Zug an, den
es für den momentan günstigsten hält. Bei nochmaligen Aufruf des
Kommandos Vorschlag wird der nächst schlechtere Zug
angezeigt. Falls kein Zug mehr möglich ist, wird die Glocke des
Rechners geschlagen.

Jeder Aufruf des Kommandos wird registriert und mitgezählt, so daß die
Spielerin im Glückwunschdialog für eine gelöste Patience die Anzahl
der gegebenen Vorschläge mitgeteilt bekommt.


Ablegen

Für alle Stapel und (falls existent) den Talon und Strafstapel sowie
die Arbeitsstapel überprüft das Kommando Ablegen, ob die
oberste Karte auf einen Stock gelegt werden kann. Wenn ja, wird das
Ablegen automatisch vom Programm ausgeführt. Dies geschieht solange,
bis keine Karte mehr in Richtung Stock bewegt werden kann.

Besonders sinnvoll ist ein Aufruf des Kommandos, wenn bereits klar
ist, daß die Patience aufgeht und nur noch in mühevoller Kleinarbeit
alle Karten auf die Stöcke speditiert werden müssen.


Zurück

Es gibt mehrere Kommandos, mit denen bereits vollzogenen Spielzüge
rückgängig gemacht werden können. Alle arbeiten auf die gleiche Weise
und unterscheiden sich nur darin, wieviele Züge zurückgesetzt werden.

Das Kommando Zug zurück macht - der Name legt es nahe - den
zuletzt ausgeführten Spielzug rückgängig. Es wird auch der interne
Zähler, wieviele Spielzüge bereits betätigt wurden, verkleinert, so
daß die Spielerin relativ unbekümmert eine mögliche Strategie
ausprobieren und, falls sie nicht aufgeht, wieder auf einen
vorherigen Spielstand aufsetzen kann.

Das Kommando zum Anfang macht nacheinander alle Spielzüge
rückgängig, bis es am Ausgangspunkt des Spiels angekommen ist. Dies
geschieht Zug für Zug, und das Kommando bricht ab, wenn die Spielerin
eine Taste betätigt. Auf diese Weise kann bequem bis zu einer weiter
zurückliegenden Spielsituation gegangen werden.

Das Kommando Merken merkt sich den derzeitigen Spielstand. Wenn
seit dem Merken mindestens ein Zug gespielt wurde, kann mit
Zur Marke auf diesen Spielstand zurückgegangen werden. Auch
hier bricht das Kommando wieder ab, wenn eine Taste betätigt wird.


Verändern

Das Kommando Verändern verwaltet die Lizenz zum Mogeln.
Wenn der Eintrag aktiv ist (das Quadrat im Menüeintrag ist rot),
kann eine einzelne Karte auf jeden beliebigen Stapel abgelegt werden,
ohne daß das Programm die Einhaltung der Spielregeln überprüft.

Jede regelwidrige Aktion wird registriert und mitgezählt, so daß die
Spielerin im Glückwunschdialog für eine gelöste Patience die
Anzahl ihrer Regelverstöße mitgeteilt bekommt.

3.5   Karten

Falls kein Talon existiert, wird durch das Kommando Geben pro
Stapel eine Karte von der Hand genommen und offen auf den Stapel
gelegt. Falls ein Talon existiert, wird die hierfür vorgesehenen
Anzahl (meistens 3) von der Hand genommen und auf den Talon gelegt, so
daß nur der Wert der obersten umgedrehten Karte zu erkennen ist.
Das Kommando kann auch durch Klicken der linken (oder rechten)
Maustaste auf die Hand aufgerufen werden.

Dem darunter befindlichen Eintrag kann entnommen werden, wieviele
Karten sich noch auf der Hand befinden.


Kartenfonts

Die Darstellung der Karten geschieht durch Anzeigen von Bitmaps, also
einfarbiger Graphik. Es stehen mehrere Bitmapsätze zur Auswahl. Neben
dem Standardsatz Normal existiert noch ein Satz
Schwarz-Weiß mit einer blasseren Darstellung der Herz- und
Karokarten. Eine Vergrößerung des Standardsatzes ist Groß.

Außerdem werden noch weitere frei kopierbare Kartensätze mit
ausgeliefert, die nach ihren Herstellern benannt sind: Traub,
Sager und Goyette.

Wird die Patience von einem wish der Version 4 interpretiert,
so können auch mehrfarbige Bilder oder Photos im Gif- oder PPM-Format
angezeigt werden. Zur Auslieferung gehört ein Kartensatz Bunt
im Gif-Format.


Mit Comics

Hier kann abhängig von der Geduld der Spielerin das folgende
eingestellt werden.

Verteilen: soll die bildliche Darstellung des Mischens
erfolgen?

Kartenbewegen: sollen die schnellen Bewegungen von
Spielkarten beim Verteilen oder automatischen Ablegen gezeichnet
werden?

Schattenhöhe: wie hoch werden die Karten beim Bewegen
durch die Spielerin visuell angehoben? Bei einer Höhe von 0 werden
gar keine Schatten dargestellt.

3.6   Hilfe

Durch Aufruf des Befehls Spielregeln... kann dieses Papier in
einem extra Fenster am Bildschirm gelesen werden. Das Fenster kann
durch Betätigung des Okay-Knopfes am unteren Rand geschlossen
werden; die Patience kann jedoch auch mit geöffnetem Hilfetextfenster
weiter gespielt werden.

Hinweis: Falls gerade das Programm tkman (von Tom Phelps) zum
Anschauen von Manual-Seiten auf dem aktuellen Display läuft, wird es
benutzt, um den Hilfetext anzuzeigen.

3.7   Tastatur-Kommandos

Die wichtigsten Kommandos lassen sich auch direkt von der Tastatur aus
aufrufen. Die Tabelle Tastatur-Kommandos enthält eine
Aufstellung der Tasten und der ihnen zugeordneten (weiter oben bereits
beschriebenen) Kommandos.


Taste	Kommando
n	Patience/Start eines neuen Spiels
d	Patience/Demo
Ctrl-L	Patience/Bild erneuern
e	Patience/Beenden
l	Datei/Laden
s	Datei/Speichern
v	Unterstützung/Vorschlag
a	Unterstützung/Ablegen
z	Unterstützung/Zug zurueck
k	Karten/Geben

Tastatur-Kommandos


3.8   Die Maustasten

Neben den Befehlen, die mit Hilfe des Menüs aufgerufen werden können,
gibt es auch noch die Möglichkeit, mit der Maus den Mauszeiger auf
bestimmte Bereiche der Spielfläche zu bringen und dort die linke oder
rechte Maustaste zu betätigen.


Durch Druck der linken Maustaste über einer offenen Karte wird die
entsprechende Karte aufgenommen (siehe Abschnitt
Das Verschieben).

Durch Druck der linken Maustaste über einer verdeckter Karte auf
einem Stapel wird die entsprechende Karte umgedreht (siehe ebenfalls
Abschnitt Das Verschieben).

Durch Druck der linken oder rechten Maustaste über der Hand
werden Karten von der Hand auf den Talon oder auf die Stapel gegeben
(siehe Abschnitt Die Spielfläche).

Durch Druck der rechten Maustaste über dem Talon, dem
Strafstapel oder im Bereich eines Stapels wird der Computer
aufgefordert, mit dem entsprechenden Stapel etwas zu
unternehmen.

Das Repertoire der Reaktionen umfaßt das Ablegen der obersten Karte
auf den Stock und das Verschieben des oben liegenden Teilstapels
(oder der oben liegenden Einzelkarte) auf einen anderen Stapel. Wird
durch die Aktion eine verdeckte Karte frei, wird sie auch noch
gleich umgedreht.

Im Grunde ist die rechte Maustaste eine bequeme Möglichkeit, den
Computer dazu zu bringen, das zu tun, was die Spielerin mit der
linken Maustaste in einem Vielfachen der Zeit selbst tun könnte...

4     Streitpatience

Bei manchen Patiencen sehen es die Regelsätze vor, daß zwei
Spielerinnen gegeneinander oder eine Spielerin gegen den Computer
spielt. Diese Patiencen laufen unter dem Namen Streitpatience. Zur
Auslieferung gehört genau ein Regelsatz dieser Art, der ebenfalls
Streitpatience heißt.


Herausforderung zu einer Streitpartie


Der Menüpunkt Kontakt aufnehmen... ist aktiviert, wenn eine
Streitpatience gegen den Computer gespielt wird. Beim Anklicken
öffnet sich ein Fenster
, mit dem eine andere Spielpartnerin gesucht werden kann.


Eine Kontaktaufnahme mit einer Gegnerin an einem anderen Rechner ist
nur möglich, wenn die Patience von dpwish interpretiert wird.
Eine Kontaktaufnahme mit einer Gegnerin am gleichen Display ist
dagegen immer möglich (allerdings nur zu Testzwecken interessant).
In Abschnitt Installation ist beschrieben, wie das
interpretierende Programm geändert werden kann.

Der Menüpunkt Kontakt aufnehmen... ist deaktiviert, also in
grauer  Schrift dargestellt und nicht aufrufbar, wenn bereits mit
einer menschlichen Gegnerin gestritten wird. Statt dessen sind die
zwei darunter befindlichen Menüpunkte aktiv.

Mit Kontakt prüfen... kann während des Spiels
überprüft werden, ob die Verbindung zur Spielpartnerin noch
besteht. In etwa entspricht dieses Kommando dem Netzwerkbefehl
ping. Ist die Verbindung in Ordnung, passiert nichts; im
Fehlerfall erscheint ein Dialogkasten, der auf das Problem hinweist.

Das Kommando Kontakt synchronisieren... ist nützlich nach
einer zeitweiligen Unterbrechung der Verbindung; dann kann es
nämlich vorkommen, daß die Spielzustände in den beiden
Spielen nicht mehr übereinstimmen. Durch Aufruf des Kommandos wird
bei der Spielpartnerin angefragt, ob sie den Spielzustand der anderen
Spielerin übernehmen will. Falls sie mit Übernehmen
antwortet, wird der Spielzustand der anfragenden Spielerin in beiden
Patiencen gesetzt.

Darunter befindet sich der Schalter Streitbereit;
mit ihm kann bestimmt werden, ob es in Ordnung ist, daß man von
anderen Patiencespielerinnen zwecks Kontaktaufnahme gestört wird
(Quadrat ist rot) oder ob man lieber in Ruhe spielen will (Quadrat ist
grau).

Wird der Schalter aktiviert und das Programm wird nicht von
dpwish interpretiert, erscheint ein Hinweiskasten, daß
Spielerinnen an anderen Rechnern nicht erreichbar sind.


Beenden einer Streitpatience


Ist die Spielerin gerade an der Reihe, kann eine Partie gegen den
Computer genau wie eine normale Patience z.B. durch Anwahl einer
anderen Regelart, durch Patience/Beenden oder auch
durch Tastendruck von e oder n beendet werden. 
Ist der Computer gerade am Zug, bleibt nur die Aufgabe durch
Tastendruck von e oder n, da das Menü ja deaktiviert
ist.

Bei einer Partie gegen eine andere Spielerin erscheint nach Betätigung
eines Kommandos, das das gegenwärtige Spiel beenden würde, ein Dialog
. In ihm kann entschieden werden, ob die Verbindung mit der Gegnerin
ganz eingestellt werden soll oder ob nur das aktuelle Spiel zwecks
Neubeginn aufgegeben wird.


Bei Betätigung des Knopfes Beenden erhält die Spielpartnerin
eine Nachricht, daß das Spiel aufgegeben wurde. Bei Betätigung von
Neues Spiel bekommt die Partnerin die Auswahl, ob sie bereit
ist, das derzeitige Spiel zu Gunsten eines neuen abzubrechen, oder nicht.

5     Der Regeleditor

Der Regeleditor wird durch das Kommando Regeln editieren im Menü
Datei aufgerufen. Er öffnet ein eigenes Fenster mit den Regeln
der Patience, die gerade gespielt wird.


Im folgenden werden zunächst die einzelnen Felder des Regeleditors
(Abschnitt Die Felder des Regeleditors) und anschließend die
verschiedenen Kommandoknöpfe in den unteren zwei Reihen (Abschnitt
Die Kommandos des Regeleditors) beschrieben.

5.1   Die Felder des Regeleditors



Name (intern)

Der programminterne Name der Patience wird hier nur angezeigt; er kann
durch Aufruf der Kommandos Neu (Abschnitt Neu)
oder Laden (Abschnitt Laden) geändert werden.
Im Normalfall sollte er dem Prefix des Dateinamens entsprechen, unter
dem die Regeln abgespeichert werden (Abschnitt
Speichern).


Name (extern)

Der externe Name der Patience ist der für die Spielerin sichtbare Name
der Patience. Er erscheint z.B. im Menü Patience, aber auch in
der Titelzeile des gesamten Windows
.

Es wird der externe Name des Regelsatzes in der aktuellen Sprache
angezeigt. Da das Spiel (höchstwahrscheinlich) in jeder Sprache mit
einem anderen Namen im Menü erscheinen soll, wird bei Anwahl des
externen Namens ein Formular aufgeblättert, in dem für jede bekannte
Sprache ein Name eingegeben werden kann
. Dieses Formular wird durch Betätigung des unten liegenden
Okay-Knopfes verlassen.



Kartensatz

Hier wird eingestellt, ob mit einem oder zwei Kartensätzen gespielt
wird. Ein Kartensatz besteht aus 52 Karten (13 Werte mal 4 Farben).


Streitpatience

Hier kann bestimmt werden, ob es sich um eine Streitpatience handelt.
Falls ja, wird weiterhin festgelegt, ob die 2 Kartensätze (falls
vorhanden) pro Hand getrennt oder gemeinsam gemischt und verteilt
werden.


Talon

Durch den Schieberegler kann eingestellt werden, ob in der Patience
ein Talon existiert (Regler auf eine Position ungleich 0) oder nicht
(Regler am linken Anschlag). Die Stellung des Reglers gibt an, wie
viele Karten beim Geben auf einmal von der Hand auf den Talon bewegt
werden.


Strafstapel

Durch den Schieberegler kann eingestellt werden, ob in der Patience
ein Strafstapel existiert (Regler auf eine Position ungleich 0) oder nicht
(Regler am linken Anschlag). Die Stellung des Reglers gibt an, wie
viele Karten beim Neuverteilen der Patience auf den Strafstapel gelegt
werden.


Arbeitsstapel

Durch den Schieberegler kann eingestellt werden, wieviele
Arbeitsstapel in der Patience existieren. Es können zwischen 0 und
vier Arbeitsstapel einschließlich eingestellt werden.


Unten liegende Karten offen


Mit diesem Auswahlmenü kann bestimmt werden, ob zu Beginn des Spiels
alle Karten auf den Stapeln offen (also sichtbar) liegen
(ja), oder nur die Werte der obersten Karten jedes Stapels zu
erkennen sind, alle darunter befindlichen Karten jedoch mit dem Rücken
nach oben liegen (nein).


Anz. Stapel

Wie viele Stapel in der Patience existieren, kann mit dem waagerechten
Schieberegler (zwischen 1 und 10) eingestellt werden. Pro Stapel gibt
es unter dem waagerechten je einen senkrechten Schieberegler, der
angibt, mit wie vielen verdeckten Karten (von 0 bis 10) der Stapel
beim Verteilen gefüllt wird. Es wird immer eine offene Karte oben auf
die Stapel verteilt, so daß die Einstellung 0 nicht aussagt, daß gar
kein Karte auf den Stapel verteilt wird, sondern daß unter der offenen
keine verdeckten Karten mehr liegen.


Ablage Stapel

Mit diesem Auswahlmenü wird die Regel festgelegt, mit deren Hilfe
bestimmt wird, ob auf einem Stapel eine Karte auf eine andere paßt. Es
stehen die Kombinationen aus Aufsteigend, Absteigend
oder Auf-/Absteigend mit Echt, Unecht oder
Egal zur Auswahl. 

Auf- und absteigend bezieht sich dabei auf die Werte der beteiligten
Karten. Falls die Regel aufsteigend besagt, muß der Wert der oberen
Karte der nächst größere sein, bei absteigend entsprechend der nächst
kleinere. Bei aufsteigender Regel paßt also z.B. ein Bube auf eine 10.

Echt, Unecht und Egal bezieht sich auf die Farbe der beiden Karten. Echt
heißt, daß beide Karten die gleiche Farbe besitzen müssen, unecht
heißt, daß auf eine Karo- oder Herzkarte eine Pik- oder Kreuzkarte
paßt und umgekehrt. Unecht läßt sich daher auch gut als "`Rot und
Schwarz abwechselnd"' beschreiben. Egal sagt aus, daß die Kartenfarbe
keine Rolle spielt bei der Entscheidung, ob zwei Karten aufeinander
passen.


Teilstapel

Mit diesem Auswahlmenü wird die Regel festgelegt, mit deren Hilfe
bestimmt wird, ob mehrere aufeinander liegende Karten einen
beweglichen Teilstapel bilden. Es stehen die selben Kombinationen zur
Verfügung wie für die Ablage Stapel (siehe Abschnitt
Ablage Stapel) und die zusätzliche Auswahl
nur einzelne Karte.

Nur einzelne Karte bedeutet, daß nicht mehrere Karten als ein
Teilstapel auf einmal bewegt werden können.


Ablage Stock

Mit diesem Auswahlmenü wird die Regel festgelegt, mit deren Hilfe
bestimmt wird, ob auf einem Stock eine Karte auf eine andere paßt. Es
stehen die Kombinationen aus Aufsteigend oder
Absteigend mit Echt oder Komplett zur
Auswahl. Es fehlen hier die Kombinationen mit Unecht oder
Egal, da Stöcke immer an eine feste Farbe gebunden sind.

Komplett heißt, daß keine einzelnen Karten auf den Stock gelegt werden
können, sondern daß die gesamte Familie bereits auf einem Stapel
vereinigt worden sein muß und dann mit einem Zug auf den Stock
geschoben wird.


Ablage Strafe

Mit diesem Auswahlmenü wird die Regel festgelegt, mit deren Hilfe
bestimmt wird, ob auf dem Strafstapel eine Karte auf eine andere paßt. Es
stehen die Kombinationen aus Aufsteigend, Absteigend
oder Auf-/Absteigend mit Echt oder Unecht
zur Auswahl.

Diese Einstellung ist nur wichtig in einer Streitpatience, wo zwei
Spielerinnen gegeneinander spielen, da ja kaum eine Spielerin eine
Karte auf ihren eigenen Strafstapel legen wird.


Stock Basis

Mit diesem Auswahlmenü kann bestimmt werden, welchen Wert eine Karte
besitzen muß, damit sie auf einen leeren Stock gelegt werden kann.

Es kann ein fester Wert eingestellt werden (meistens wohl das As), und
es gibt die besondere Einstellung Erste Karte. Dann wird beim
Verteilen nach dem Mischen die oberste Karte der Hand automatisch auf
den entsprechenden Stock geschoben; ihr Wert bestimmt dann die Basis
der Stöcke. Da jetzt der König nicht mehr unbedingt der höchste Wert
ist, kann das As (quasi zyklisch) auf ihn gelegt werden.


Stapel Basis

Mit diesem Auswahlmenü kann bestimmt werden, welchen Wert eine Karte
besitzen muß, damit sie auf einen leeren Stapel gelegt werden kann.

Es stehen die Einstellungen jede Karte und
nur höchste Karte zur Auswahl. Der Wert der höchsten Karte ist
abhängig vom Wert der Stockbasis und der Regel für passende Werte auf
dem Stapel. Wenn z.B. (wie in der Kleinen Harfe) ein As die Stockbasis
ist und auf den Stapeln absteigend angelegt werden kann, ist die
Stapelbasis ein König. Bestimmt (in einer noch zu erschaffenden
Patience) die erste Karte die Stockbasis und es wurde ein Bube als
erstes auf den Stock gelegt, ist bei aufsteigenden Stapeln eine Dame
die Stapelbasis.


Alte Karten beweglich

Mit diesem Auswahlmenü kann bestimmt werden, ob alte Karten
des Talons noch aufgenommen werden dürfen. Eine Talonkarte ist alt,
wenn sie zwischenzeitlich bereits von einer anderen verdeckt war oder
wenn die Spielerin bei einer Streitpatience wieder an der Reihe ist.

Gleichzeitig wird damit festgelegt, ob Karten wieder vom Stock
aufgenommen werden dürfen.

5.2   Die Kommandos des Regeleditors



Neu

Mit diesem Kommando kann das Feld Name (intern) auf einen anderen
Wert gesetzt werden; der eingegebene Name sollte dem Programm noch
nicht bekannt sein.


Dazu erscheint ein Fenster
, dem die Spielerin alle dem Programm bekannten internen Namen
entnehmen und einen neuen eingeben kann.


Laden

Mit Hilfe des in Abschnitt Spielzustand beschriebenen Fensters
zur Auswahl eines Dateinamens kann ein (vorher gespeicherter)
Regelsatz eingeladen werden. Die externen Dateinamen der Regeldateien
enden normalerweise mit .spr (von
Spielregel), daher ist das Feld Maske mit
*.spr vorbelegt.

Die ausgelieferten Spielregeln befinden sich in der Unterdirectory
spiel der Library-Directory, also z.B. in
/usr/lib/X11/patience-1.8/spiel.


Speichern

Mit Hilfe des in Abschnitt Spielzustand beschriebenen Fensters
zur Auswahl eines Dateinamens kann der gerade bearbeitete Regelsatz in
einer Datei gespeichert werden. Die externen Dateinamen der
Regeldateien enden normalerweise mit .spr (von
Spielregel), daher ist das Feld Maske mit
*.spr vorbelegt.

Falls die Schreibberechtigung in die Library-Directory fehlt,
empfiehlt es sich, eigene Regelsätze in einer privaten Directory zu
sammeln und die Resource-Variable sprPath (siehe auch
Abschnitt Installation) entsprechend zu setzen. Die
Resourcevariable enthält eine durch : getrennte Liste von
Directories, in denen bei Programmstart nach Regelsätzen gesucht
wird. Ein Beispiel:


Patience*sprPath: /home/krischan/spiel:/usr/lib/X11/patience-1.8/spiel



Abbruch

Das Fenster des Regeleditors wird ohne weitere Rückfrage geschlossen,
und es kann mit der vor Aufruf des Kommandos Regeln editieren
eingestellten Patience weitergespielt werden.


Anwenden

Ein Ändern der Einstellungen im Regeleditor hat keine unmittelbare
Wirkung auf die gerade gespielte Patience; es kann wohl auch schlecht
mitten im Spiel z.B. die Anzahl der Stapel verändert werden.
Mit dem Kommando Anwenden können nun die vorgenommenen
Regeländerungen in ein neu anzufangendes Spiel übernommen werden.


Okay

Ein Aufruf von Okay bewirkt eine Ausführung der Kommandos
Speichern, Anwenden und Abbruch, wobei bei
negativer Bestätigung im Speichern- oder Anwenden-Dialog die
Abarbeitung abbricht.

6     Installation

6.1   Installation des ausführbaren Tcl-Programms

Die Entscheidung, unter welchem Pfad das ausführbare Pragramm und die
Library-Directory für die Patience angelegt werden, ist vom
persönlichen Geschmack abhängig. Mir fallen da als mögliche
Kandidatenkombinationen die in Tabelle
Mögliche Pfadnamen für binDir und libDir dargestellten ein. 


Ausführbares Programm	Library-Directory
/usr/games/patience	/usr/games/lib/patience-1.8
/usr/bin/X11/patience	/usr/lib/X11/patience-1.8
/usr/local/bin/patience	/usr/local/lib/patience-1.8
b /home/krischan/bin/patience	/home/krischan/patience-1.8

Mögliche Pfadnamen für binDir und libDir


Wer immer jetzt die Patience einspielt, muß schreibberechtigt für
die beiden ausgewählten Directories sein. Dann kann die Patience durch
die folgenden Schritte installiert werden, wobei binDir und
libDir die beiden obigen Directories bezeichnen.

In die der Library-Directory übergeordneten Directory wechseln
mit z.B.

cd /usr/local/lib

Die Installationsdiskette entpacken mit tar xvzf /dev/fd0.
Also zumindests funktioniert das so auf meinem Rechner. Evtl. muß
auch ein anderer Name wie /dev/floppy oder
/dev/rfd0H1440ds angegeben werden. Falls sich die
Auslieferung bereits auf der Platte oder einer CD befindet, kann
sie mit tar xvzf /tmp/patience-1.8.tgz (z.b.) entpackt
werden. Wer ein tar besitzt, das die z-Option zum
Entkomprimieren nicht versteht, muß den folgenden Fingerbrecher
benutzen, um die Patience zu entpacken:

gzip -cd /cdrom/langerPfad/patience-1.8.tgz | tar xvf -

In die soeben erzeugte Directory wechseln: cd patience-1.8

Wer einen wish der Version 4 besitzt, kann jetzt das
Installationsprogramm install.tcl aufrufen. Es ist ein
englischsprachiges Tk-Programm, das die folgenden Schritte als
Menüpunkte anbietet. Nachdem im Menü Configure die
angebotenen Einstellungen gemacht wurden, kann im Menü Make
durch (Make then) Start die Patience erzeugt und aufgerufen,
bzw. durch Make Installation das erzeugt Programm in die
entsprechenden Directories kopiert werden.

Falls noch kein neuer wish zur Verfügung steht oder kein
X-Display in der Nähe ist oder sonstige Gründe gegen eine graphische
Oberfläche sprechen, wird gemäß der Punkte 5 bis 7 dieser Liste
installiert.

Mit dem Editor der Wahl das Makefile editieren und im
zweiten Teil (also so ungefähr ab Zeile 15) die folgenden Variablen
den Gegebenheiten auf der aktuellen Maschine und/oder den
persönlichen Vorlieben anpassen.

WISH: Dieser Variable wird der vollständige Pfadname des
Tcl/Tk-Interpreters zugeordnet. Er kann (im Bourne-, Korn- oder
ähnlichen Shell) erfragt werden durch einen Aufruf von
type wish. Bei mir lautet die Zeile deshalb zur Zeit
WISH = /usr/bin/wish. 

Um die im Abschnitt Streitpatience beschriebenen
Funktionalitäten auch über Rechnergrenzen hinweg nutzen zu können,
muß hier der Name eines Interpreter-Shells angegeben werden, der die
Tcl-DP Prozeduren enthält. Dieser Shell heißt in der Regel
dpwish. Das Tar-Archiv mit der Distribution heißt
tcl-dp3.2.tar.Z und ist u.a. erhältlich am FTP-Rechner
mm-ftp.cs.berkeley.edu in der Directory
/pub/multimedia/Tcl-DP.

LIB\_DIR: Hier wird die vorhin ausgesuchte libDir
eingetragen, bei mir lautet die Zeile
z.Z. LIB\_DIR = /usr/lib/X11/patience-1.8. 

BIN\_DIR: Hier wird die vorhin ausgesuchte binDir
eingetragen, bei mir lautet die Zeile
z.Z. BIN\_DIR = /home/krischan/patience-1.8.

CFLAGS: Für die Übersetzung des erweiterten
Patience-Interpreters patsh kann es wichtig sein, diese
Variable korrekt zu setzen, falls sich die Tcl-Includedateien an
einem ungewönlichen Ort befinden.

Dann make patience aufrufen; nach spätestens fünf bis
zehn Sekunden sollte alles fertig zum Losspielen sein. Im Programm
ist deutsch als Defaultsprache eingestellt; wer diese Beschreibung
bis hierher durchgelesen hat, sollte ruhig den Defaultwert
belassen. Die Sprache kann durch eine Resource gesetzt werden (siehe
Abschnitt X-Resourcen).

Ein Probespiel kann jetzt bereits mit ./patience
aufgerufen werden. Damit es später von überall her nur durch Nennung
des Namens aufgerufen werden kann, muß noch der Befehl
make install ausgeführt werden.

6.2   Der erweiterte Interpreter


Wer Lust hat, kann noch ein C-Programm patsh.c übersetzen; das
geschieht mit Hilfe des Makefiles und einem Aufruf von
make patc. Anschließend wird das erzeugte ausführbare
Programm als patience in binDir installiert durch
make installc. 

Durch obigen Aufruf wird neben dem Programm noch ein
Patience-Interpreter patsh erzeugt; er entspricht dem normalen 
Tk-Interpreter wish, ist aber erweitert um eine Prozedur zum
Mischen sowie einige zentrale Prüf"|funktionen und damit etwas schneller.

6.3   Starten unter anderem Namen


Wenn das Programm den Namen einer bekannten Patienceregel besitzt,
wird bei Programmstart sofort ein Spiel mit den entsprechenden Regeln
gestartet. Wer also mag, kann z.B. nach Ausführung des folgenden
Befehls das Programm gleich mit der Kleinen Harfe aufrufen

ln -s patience klHarfe

Das gelingt ebenso mit den internen Namen von anderen, auch
selbstkonstruierten, Regelsätzen.

Der gewünschte Name kann auch als Parameter mit übergeben
werden. Die Streitpatience ist daher direkt spielbar durch

patience -name streit

Es ist also z.B. möglich, im Rootmenü des Windowmanagers ein Untermenü
Patience zu erzeugen, daß die Patience mit der jeweiligen Spielregel
startet. In der Initialisierungsdatei .fvwmrc des
fvwm-Windowmananger sieht das wie folgt aus:

Popup "Patience 1.8"
Exec "Standard"  exec patience	
Exec "Kl. Harfe" exec patience -name klHarfe	
Exec "Canfield"  exec patience -name canfield	
Exec "Spinne"    exec patience -name spider	
Exec "Streit"    exec patience -name streit	
Exec "Seehafen"  exec patience -name seahaven	
EndPopup


6.4   X-Resourcen

Das Programm greift auf einige Resourcevariablen zurück, die das
äußere Erscheinungsbild ändern. In Tabelle X-Resourcen sind
die Namen, die Defaultwerte und ihre Bedeutung aufgelistet.


Resource	Defaultwert	Bedeutung
warteZeit	10	Vorgabe der Wartezeit bei der Pfeildarstellung
rot	IndianRed4	Rote Farbe der Karo- und Herzkarten
grau	gray80	Graue Hintergrundfarbe der Stöcke
weiss	gray95	Weiße Hintergrundfarbe der Karten
xlogo	/usr/include/X11/bitmaps/xlogo11
		Bitmap oben links in Menüleiste
sprPath	libDir/spiel	nach Spielregeln zu durchsuchende Directories
mitMischComic	True	Vorgabe von Mit Comics/Verteilen 
mitBewegComic	True	Vorgabe von Mit Comics/Kartenbewegen
schatten	5	Vorgabe der Schattenhöhe
mitStreitbar	False	Vorgabe von Patience/Streitbereit
kartenFont	normal	Vorgabe des Kartenfonts
sprache	deutsch	die Sprache (deutsch oder english)
daemonPort	4567	Portnummer des Patience-Dämons

X-Resourcen


Die Farbresourcen rot, weiss und grau haben
nur Auswirkungen auf durch Bitmaps dargestellte Karten; bei
Darstellung der Karten durch Pixmaps oder Gif-Photos werden sie
ignoriert.

Die Resourcen werden nacheinander an den folgenden Orten mit
aufsteigender Priorität gesucht:

die vom Programm vorgegebenen Defaultwerte, wie in Tabelle
X-Resourcen beschrieben;

in der systemweit installierten Resourcedatei
libDir/app-default;

in der von der Spielerin konfigurierten Resourcedatei
/.Xdefaults;

in den durch xrdb -merge definierten Resourcen.
In den Resourcedateien hat die Zuordnung eines Wertes zu einer
Resource den folgenden Aufbau:

*patience.Resourcename: Wert

Beispielsweise wird der Schwarz/Weiß-Font als Vorgabe für die
Kartendarstellung gesetzt durch: 

*patience.kartenFont: sw

6.5   Bekannte Fehler


Der Pfeil hat bei komprimierten Stapeln eine falsche
Y-Koordinate.

6.6   Ausstehende Verbesserungen


Alle nicht sichtbaren Karten (auf Stock, Talon und Strafstapel)
sollten von der Spielfläche gelöscht werden, damit das Geben und der
Verteilcomic schneller gehen.


AUTHOR:
krischan@cs.tu-berlin
