Patience-1.8(6)

NAME
Patience --- ein Spiel f{

Einleitung
Was ist denn das Besondere an dieser Patience? Es sind sechs verschiedene Regelsaetze vorgegeben, nach denen die Karten gelegt werden koennen. Es besteht die Moeglichkeit, beliebig viele Spielzuege (im Extremfall alle bis zum Beginn des Spiels) rueckgaengig zu machen. Der gegenwaertige Spielzustand kann abgespeichert werden, um ihn spaeter wieder einladen zu koennen - vielleicht geht das Spiel ja dann besser auf. Es werden auf Wunsch Vorschlaege gemacht, welche Spielzuege noch moeglich sind. Es kann in einer Streitpatience gegen den Computer oder gegen eine andere Spielerin (evtl. an einem anderen Computer) gekaempft werden. Wenn bereits absehbar ist, dass das Spiel aufgeht, ist kein muehseliges Dauerklicken noetig; das Programm legt alle Karten selbsttaetig auf die Stoecke ab. Wer unbedingt will, kann sogar mogeln. Es kann (fuer jede Regelart) eine Demo gefahren werden, die einen ungefaehren Eindruck vermittelt, wie das Spiel zu loesen waere. Das Ganze ist programmiert in Tcl/Tk, so dass 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 franzoesisches Blatt dargestellt auf einer Spielflaeche der Groesse 640*400 Bildpunkte. Es koennen 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 Regelsaetze zusammengestellt (und abgespeichert) werden koennen, die dann zusaetzlich zu den ausgelieferten sechs Spielarten gespielt werden koennen. Das Programm ist mehrsprachig; d.h. abhaengig von einer Resource besitzt es eine deutsche oder englische Benutzeroberflaeche. Als Hilfesystem wird tkman benutzt, falls das Programm auf dem aktuellen Display laeuft.

Regeln

  Die Karten
Alle Patiencen werden, unabhaengig von den weiteren Regeln, mit Rommee-Karten gespielt. Ein Kartensatz besteht aus 52 Karten, naemlich den Werten 2 bis 10, Bube, Dame, Koenig, As jeweils in den Farben Karo, Herz, Pik und Kreuz. Von Patienceregel zu -regel unterschiedlich wird mit einem oder zwei Kartensaetzen gespielt, soll heissen, es befinden sich 52 oder 104 Karten im Spiel.

  Die Spielflaeche

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

Die Stapel
    Aus der gut durchgemischten Hand werden die Stapel mit einer oder mehreren Karten aufgefuellt. Die Stapel befinden sich am oberen Spielflaechenrand und sind von links anfangend nebeneinander aufgereiht. Von den Regeln abhaengig existieren durchaus unterschiedlich viele Stapel: Canfield besitzt z.B. nur vier, bei der Spinne gibt es die groesstmoegliche 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 Ruecken 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 abhaengig von den Regeln; die kleine Harfe z.B. verdient ihren Namen der Tatsache, dass 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 Fuellen 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
    Ausserdem 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 Stoecke
    Am rechten Bildrand sind die Stoecke erkennbar. Das Ziel des Spiels ist es, alle Karten auf die Stoecke zu plazieren. Bereits durch den Untergrund eines leeren Stocks ist erkennbar, das jeder Stock nur fuer eine Farbe reserviert ist, der oberste z.B. fuer Karo. Abhaengig von der Anzahl der im Spiel befindlichen Karten gibt es vier oder acht Stoecke, naemlich fuer jede Farbe jedes Kartensatzes einen.

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

Die Spielflaeche in einer Streitpatience
    In einer Streitpatience ist nicht alles uneingeschraenkt gueltig, 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, dass 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. Waehrend 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 Spielflaeche in der Mitte ist ein grosser 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 drueckt sie auf den Knopf zum Zeichen, dass die Gegnerin oder der Computer an der Reihe ist. Die Beschriftung des Knopfes wird sich aendern (der Name der Gegnerin oder das Wort Computer wird angezeigt) und die Gegnerin spielt so lange wie moeglich, bevor wieder der Namen der Spielerin im Knopf erscheint.

Wer faengt an?
    Zu Beginn einer Streitpatience wird ermittelt, wer anfaengt, d.h. wessen Name in der Schachuhr erscheint (und damit, wer zuerst das Recht bekommt, Karten bewegen zu duerfen). Das geschieht durch Abheben; beide Haende werden gemischt und aus jeder wird eine Karte gezogen. Die Karten werden verglichen, und die Spielerin mit der hoeherwertigen Karte faengt an; bei gleichem Kartenwert gilt die Reihenfolge Kreuz ueber Pik ueber Herz ueber Karo.

  Das Verschieben
Die Spielerin kann mit der Maus den Mauszeiger ueber einer Karte ihrer Wahl plazieren. Falls sie dann die linke Maustaste drueckt, wird die Karte dem Mauszeiger folgen, solange die linke Maustaste gedrueckt bleibt. Bildlich gesprochen hat die Spielerin gerade die Karte aufgenommen, ueber der Spielflaeche herumgetragen und schliesslich wieder fallengelassen. Falls auf einem Stapel eine verdeckte Karte (also mit dem Ruecken 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 Stoecke oder Stapel (inklusive Talon, Straf- oder Arbeitsstapel) zuordnen laesst, wird die Karte automatisch an den Startpunkt der Reise zurueckbefoerdert. Ansonsten wird ueberprueft, ob der neue Standort den im folgenden beschriebenen Regeln gehorcht, und, falls das nicht der Fall ist, wird die Karte ebenfalls zum Ausgangsort zurueckgebracht. 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 saeuberlich ausgerichtet auf ihrem neuen Platz zu liegen. Ueber alle korrekt durchgefuehrten Zuege wird intern Buch gefuehrt, was dazu fuehrt, dass der Computer genau weiss, wieviele Zuege fuer die Patience benoetigt wurden, um z.B. in der Gratulation die Anzahl der benoetigten Zuege mitzuteilen. Dadurch wird es aber auch der Spielerin moeglich, saemtliche Zuege auf Wunsch rueckgaengig zu machen - mit welchen Kommandos, wird in Abschnitt Zurueck gesagt.

Das Verschieben von Teilstapeln
    Wenn auf einem Stapel mehrere offene Karten passend uebereinander liegen, koennen 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 passt, wird der ganze Teilstapel auf den neuen Stapel gelegt. Teilstapel koennen nur auf die normalen Stapel, nicht jedoch auf den Talon, Stock, Arbeits- oder Strafstapel gelegt werden. Hinweis: Bezueglich des Stocks ist letzteres in der Spinne nicht ganz richtig, wie im naechsten Abschnitt erlaeutert wird. Es wurde in den letzten Absaetzen zwar immer von Teilstapel geredet, es kann jedoch auch ein gesamter Stapel verschoben werden, wenn er von der obersten bis zur untersten Karte passt.

Wann passt eine Karte auf einen Stock
    Auf einen Stock, auf dem sich bereits mindestens eine Karte befindet, kann die naechsthoehere Karte gleicher Farbe abgelegt werden; also passt 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, dass die oberste Karte der Hand nach dem Geben automatisch auf den Stock gelegt wird und damit den niedrigsten Wert bestimmt. Da jetzt der Koenig nicht mehr unbedingt der hoechste Wert ist, kann das As (quasi zyklisch) auf ihn gelegt werden. In der Spinne gibt es die Regel, dass eine Familie nur komplett auf den Stock gelegt werden darf. Dann muss 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 muessen dann nicht mehr abgelegt werden den Stoecken zu plazieren, gilt es in der Spinne sogar als hoechstes Spielziel.

Wann passt eine Karte auf einen Stapel
    Bei den Stapeln ist es normalerweise wie folgt: Hier passt nur der naechstkleinere 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 passt jede Karte. Wie von jeder Regel gibt es auch hier Ausnahmen: Bei der kleinen Harfe darf nur die hoechste Karte (also ein Koenig) auf einen leeren Stapel gelegt werden. Bei der Spinne passt eine Karte auf jede Karte mit dem naechstgroesseren 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 duerfen nur die oberen drei Karten als Teilstapel bewegt werden. Es passt jetzt zwar eine Kreuz Fuenf auf diesen Stapel, er kann danach aber nicht mehr als Teilstapel bewegt werden. Bei Seehafen passt eine Karte nur dann auf einen Stapel, wenn die den naechstkleineren Wert der selben Farbe wie die oberste Karte des Stapels besitzt.

  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 aufgefuehrt.

Standard-Patience
    Es wird mit zwei Kartensaetzen (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 passt 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 gefuellt 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 Koenig. Auf einen belegten Stapel passt 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 gefuellt 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 passt eine absteigend unechte Karte, die dann mit den darunter liegenden Karten einen beweglichen Teilstapel bildet.

Spinne
    Es wird mit zwei Kartensaetzen (also 104 Karten) gespielt. Es existiert weder ein Talon noch ein Straf- oder Arbeitsstapel, aber zehn Stapel, die zu Beginn des Spiels jeweils fuenf oder sechs Karten enthalten. Auf den Stock duerfen nur komplette Familien gelegt werden, auf einen leeren Stapel jede Karte. Auf einen belegten Stapel passt 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 enthaelt jeder der zehn Stapel fuenf 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 passt nur eine absteigend echte Karte, Teilstapel koennen gar nicht zusammenhaengend bewegt werden.

Die Streitpatience
    Es wird mit zwei Kartensaetzen (also 104 Karten) gespielt. Es existiert pro Streitpartei ein Strafstapel mit dreizehn Karten und ein Talon, der mit jeweils einer Karten gefuellt 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 passt eine absteigend unechte Karte, Teilstapel koennen gar nicht zusammenhaengend bewegt werden.

Kommandos
Im folgenden werden die aufrufbaren Kommandos beschrieben, und zwar so gruppiert, wie sie im Menue zur Verfuegung stehen. Abschliessend gibt es eine uebersicht, welche Kommandos auch direkt mit der Tastatur (Abschnitt Tastatur-Kommandos) oder den Maustasten (Abschnitt Die Maustasten) aufgerufen werden koennen. Hinweis: Alle Menueeintraege, die mit drei Punkten (einer Ellipse) enden, fuehren zum Aufblenden eines neuen Fensters auf dem Bildschirm, in dem die Spielerin einen Dialog fuehren kann, der im nachfolgenden beim jeweiligen Kommando naeher erlaeutert ist.

  X
Hinter dem X-Logo versteckt sich der Erstellt von... Dialog, der das Fenster aufblaettert, 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 druecken, um zum normalen Spiel zurueckzukehren.

  Patience

Spielregeln
    Im obersten Teil des Menues gibt es fuer 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 zunaechst zurueckgefragt, ob das alte Spiel wirklich beendet werden soll. Die Knoepfe mit den Regelarten verhalten sich wie Radioknoepfe, wird also durch Mausdruck ein Knopf aktiviert (Diamant am linken Rand wird rot), deaktiviert das die anderen Knoepfe.

Streitpatiencen
    Im naechsten Teil des Menues geht es um Streitpatiencen. Im Eintrag Streit mit ... wird zunaechst der Name der Spielpartnerin oder das Wort Computer angezeigt, je nachdem, mit wem gerade gestritten wird. Danach gibt es eine Liste aller bekannten Regelsaetze fuer Streitpatiencen, am linken Rand mit einem Diamant gekennzeichnet. Normalerweise ist das nur ein Menuepunkt, naemlch Streitpatience. Mit diesen Menuepunkten kann der aktuelle Regelsatz gewechselt oder ein neues Spiel begonnen werden, genau wie im obigen Abschnitt Spielregeln fuer Einzel-Patiencen beschrieben. Die darunter befindlichen Menuepunkte Kontakt aufnehmen..., Kontakt pruefen..., 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 selbststaendig versucht, die Patience nach den gerade eingestellten Regeln zu loesen. Bevor es eine Karte oder einen Teilstapel verschiebt, wird mit einem Pfeil angezeigt, was als naechsten 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 oeffnet sich ein Fenster und durch Justieren des Schiebereglers kann die Wartezeit in Zehntelsekunden eingestellt werden.

Bild erneuern
    Die Kommando Bild erneuern loescht alle Elemente der Spielflaeche und baut sie neu auf. Dies kann u.a. dann nuetzlich sein, falls durch widrige Umstaende (Programmfehler) die Spielflaeche 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.

  Datei

Spielzustand
    Das Kommando Speichern... schreibt den derzeitigen Spielzustand in eine Datei, mit deren Hilfe das Kommando Laden... ihn wieder restaurieren kann. Beide Kommandos oeffnen ein Fenster , mit dem die Spielerin den externen Namen der Datei auswaehlen kann. Unter der Ueberschrift, die klarmachen soll, wofuer die auszusuchende Datei benoetigt wird, befinden sich die drei Eintraege Ordner, Datei und Maske. Als Ordner wird die aktuelle Directory angezeigt, deren Inhalt in der grossen Flaeche in der Mitte des Fensters, ab jetzt Auswahlkasten genannt, angezeigt wird. Der Eintrag Datei enthaelt den zuletzt mittels einfachen Mausklick im Auswahlkasten ausgesuchten Dateinamen. Er wird vom Programm mehr oder weniger sinnvoll vorgegeben; bei mehrmaligen Aufruf des Dialogs enthaelt er den zuletzt ausgesuchten Dateinamen. Der vollstaendige Pfadname einer Datei besteht aus dem an den angezeigten Ordner angehaengten Dateinamen. Mit dem Eintrag Maske kann bestimmt werden, welche Dateien im Auswahlkasten angezeigt werden sollen, naemlich nur solche, deren Dateiname zu der Eingabe in diesem Feld passt. Die zwei Zeichen mit Sonderbedeutung sind das Fragezeichen ?, das fuer genau ein beliebiges Zeichen steht, und der Stern *, der beliebig viele beliebige Zeichen symbolisiert. Die Maske *.pat steht also fuer 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 fuer normale Dateien, Directories werden immer angezeigt, auch wenn ihr Name nicht zur Maske passt. Im Bild gibt es nach einer Menge von Directories nur eine Datei, die zu der Maske passt, naemlich die ausgesuchte Datei schwierig.pat. Falls sich in der aktuellen Directory mehr Unterdirectories und Dateien befinden, als im Auswahlkasten dargestellt werden koennen, kann mit Hilfe des am rechten Rand befindlichen Scrollbalkens im Auswahlkasten geblaettert werden. Das Anklicken des Namens einer normalen Datei fuehrt, wie bereits erwaehnt, zu der Uebernahme des Dateinamens in den Eintrag Datei; das Anklicken eines Directorynamens fuehrt dazu, dass der Eintrag Ordner entsprechend modifiziert wird, und im Auswahlkasten alle Dateien angezeigt werden, die sich in der ausgewaehlten Directory befinden. Die ersten Eintraege im Auswahlkasten sind immer der Punkt . fuer die aktuelle Directory und der Doppelpunkt .. fuer die uebergeordnete Directory. Ein Anklicken der aktuellen Directory ist dann sinnvoll, wenn die Maske geaendert 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 natuerlich nur fuer Kommandos wie Schreiben..., und macht daher fuer das im Bild datei angegebene Kommando Laden... nicht soviel Sinn... Durch Auswahl des unten rechts befindlichen Knopfes Okay wird der aktuelle Pfadname bestaetigt 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 anschliessendes Betaetigen des Okay-Knopfes.

Regeln editieren...
    Das Kommando eroeffnet ein Fenster, mit dem der Regeleditor die zum aktuellen Spiel gehoerigen Regeln anzeigt. Sie koennen von der Spielerin geaendert, angewendet und gespeichert werden. Die Benutzung des Regeleditors ist in Abschnitt Der Regeleditor beschrieben.

Sprache
    Am unteren Ende des Menues Datei gibt es Auswahlmoeglichkeiten fuer alle dem Programm bekannten Sprachen (z.Z. sind das deutsch und englisch). Nach Auswahl einer Sprache wird das Menue neu aufgebaut und ab sofort kommen alle Dialogkaesten in der gewuenschten Sprache. Auf die Anzeige der Hilfetexte und die Dialoge zur Einstellung der Wartezeit oder Kontaktaufnahme wirkt die Umstellung erst beim naechsten Neuaufbau des entsprechenden Fensters.

  Unterstuetzung
Das Menue ist eine Sammlung von Kommandos, die der Spielerin das Leben leichter machen und die als Unterstuetzung zum leichteren Loesen der Patience gedacht sind.

Vorschlag
    Das Kommando Vorschlag zeigt eine moegliche Verschiebung durch einen Pfeil an Bei der Ermittlung des Vorschlags arbeitet das Programm die Reihe aller moeglichen Zuege ab, bewertet sie und zeigt schliesslich den Zug an, den es fuer den momentan guenstigsten haelt. Bei nochmaligen Aufruf des Kommandos Vorschlag wird der naechst schlechtere Zug angezeigt. Falls kein Zug mehr moeglich ist, wird die Glocke des Rechners geschlagen. Jeder Aufruf des Kommandos wird registriert und mitgezaehlt, so dass die Spielerin im Glueckwunschdialog fuer eine geloeste Patience die Anzahl der gegebenen Vorschlaege mitgeteilt bekommt.

Ablegen
    Fuer alle Stapel und (falls existent) den Talon und Strafstapel sowie die Arbeitsstapel ueberprueft das Kommando Ablegen, ob die oberste Karte auf einen Stock gelegt werden kann. Wenn ja, wird das Ablegen automatisch vom Programm ausgefuehrt. Dies geschieht solange, bis keine Karte mehr in Richtung Stock bewegt werden kann. Besonders sinnvoll ist ein Aufruf des Kommandos, wenn bereits klar ist, dass die Patience aufgeht und nur noch in muehevoller Kleinarbeit alle Karten auf die Stoecke speditiert werden muessen.

Zurueck
    Es gibt mehrere Kommandos, mit denen bereits vollzogenen Spielzuege rueckgaengig gemacht werden koennen. Alle arbeiten auf die gleiche Weise und unterscheiden sich nur darin, wieviele Zuege zurueckgesetzt werden. Das Kommando Zug zurueck macht - der Name legt es nahe - den zuletzt ausgefuehrten Spielzug rueckgaengig. Es wird auch der interne Zaehler, wieviele Spielzuege bereits betaetigt wurden, verkleinert, so dass die Spielerin relativ unbekuemmert eine moegliche Strategie ausprobieren und, falls sie nicht aufgeht, wieder auf einen vorherigen Spielstand aufsetzen kann. Das Kommando zum Anfang macht nacheinander alle Spielzuege rueckgaengig, bis es am Ausgangspunkt des Spiels angekommen ist. Dies geschieht Zug fuer Zug, und das Kommando bricht ab, wenn die Spielerin eine Taste betaetigt. Auf diese Weise kann bequem bis zu einer weiter zurueckliegenden 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 zurueckgegangen werden. Auch hier bricht das Kommando wieder ab, wenn eine Taste betaetigt wird.

Veraendern
    Das Kommando Veraendern verwaltet die Lizenz zum Mogeln. Wenn der Eintrag aktiv ist (das Quadrat im Menueeintrag ist rot), kann eine einzelne Karte auf jeden beliebigen Stapel abgelegt werden, ohne dass das Programm die Einhaltung der Spielregeln ueberprueft. Jede regelwidrige Aktion wird registriert und mitgezaehlt, so dass die Spielerin im Glueckwunschdialog fuer eine geloeste Patience die Anzahl ihrer Regelverstoesse mitgeteilt bekommt.

  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 hierfuer vorgesehenen Anzahl (meistens 3) von der Hand genommen und auf den Talon gelegt, so dass 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 Bitmapsaetze zur Auswahl. Neben dem Standardsatz Normal existiert noch ein Satz Schwarz-Weiss mit einer blasseren Darstellung der Herz- und Karokarten. Eine Vergroesserung des Standardsatzes ist Gross. Ausserdem werden noch weitere frei kopierbare Kartensaetze mit ausgeliefert, die nach ihren Herstellern benannt sind: Traub, Sager und Goyette. Wird die Patience von einem wish der Version 4 interpretiert, so koennen auch mehrfarbige Bilder oder Photos im Gif- oder PPM-Format angezeigt werden. Zur Auslieferung gehoert ein Kartensatz Bunt im Gif-Format.

Mit Comics
    Hier kann abhaengig 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? Schattenhoehe: wie hoch werden die Karten beim Bewegen durch die Spielerin visuell angehoben? Bei einer Hoehe von 0 werden gar keine Schatten dargestellt.

  Hilfe
Durch Aufruf des Befehls Spielregeln... kann dieses Papier in einem extra Fenster am Bildschirm gelesen werden. Das Fenster kann durch Betaetigung des Okay-Knopfes am unteren Rand geschlossen werden; die Patience kann jedoch auch mit geoeffnetem Hilfetextfenster weiter gespielt werden. Hinweis: Falls gerade das Programm tkman (von Tom Phelps) zum Anschauen von Manual-Seiten auf dem aktuellen Display laeuft, wird es benutzt, um den Hilfetext anzuzeigen.

  Tastatur-Kommandos
Die wichtigsten Kommandos lassen sich auch direkt von der Tastatur aus aufrufen. Die Tabelle Tastatur-Kommandos enthaelt 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	Unterstuetzung/Vorschlag
a	Unterstuetzung/Ablegen
z	Unterstuetzung/Zug zurueck
k	Karten/Geben
Tastatur-Kommandos

  Die Maustasten
Neben den Befehlen, die mit Hilfe des Menues aufgerufen werden koennen, gibt es auch noch die Moeglichkeit, mit der Maus den Mauszeiger auf bestimmte Bereiche der Spielflaeche zu bringen und dort die linke oder rechte Maustaste zu betaetigen. Durch Druck der linken Maustaste ueber einer offenen Karte wird die entsprechende Karte aufgenommen (siehe Abschnitt Das Verschieben). Durch Druck der linken Maustaste ueber einer verdeckter Karte auf einem Stapel wird die entsprechende Karte umgedreht (siehe ebenfalls Abschnitt Das Verschieben). Durch Druck der linken oder rechten Maustaste ueber der Hand werden Karten von der Hand auf den Talon oder auf die Stapel gegeben (siehe Abschnitt Die Spielflaeche). Durch Druck der rechten Maustaste ueber dem Talon, dem Strafstapel oder im Bereich eines Stapels wird der Computer aufgefordert, mit dem entsprechenden Stapel etwas zu unternehmen. Das Repertoire der Reaktionen umfasst 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 Moeglichkeit, den Computer dazu zu bringen, das zu tun, was die Spielerin mit der linken Maustaste in einem Vielfachen der Zeit selbst tun koennte...

Streitpatience
Bei manchen Patiencen sehen es die Regelsaetze vor, dass zwei Spielerinnen gegeneinander oder eine Spielerin gegen den Computer spielt. Diese Patiencen laufen unter dem Namen Streitpatience. Zur Auslieferung gehoert genau ein Regelsatz dieser Art, der ebenfalls Streitpatience heisst.

Herausforderung zu einer Streitpartie
    Der Menuepunkt Kontakt aufnehmen... ist aktiviert, wenn eine Streitpatience gegen den Computer gespielt wird. Beim Anklicken oeffnet sich ein Fenster , mit dem eine andere Spielpartnerin gesucht werden kann. Eine Kontaktaufnahme mit einer Gegnerin an einem anderen Rechner ist nur moeglich, wenn die Patience von dpwish interpretiert wird. Eine Kontaktaufnahme mit einer Gegnerin am gleichen Display ist dagegen immer moeglich (allerdings nur zu Testzwecken interessant). In Abschnitt Installation ist beschrieben, wie das interpretierende Programm geaendert werden kann. Der Menuepunkt 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 Menuepunkte aktiv. Mit Kontakt pruefen... kann waehrend des Spiels ueberprueft 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 nuetzlich nach einer zeitweiligen Unterbrechung der Verbindung; dann kann es naemlich vorkommen, dass die Spielzustaende in den beiden Spielen nicht mehr uebereinstimmen. Durch Aufruf des Kommandos wird bei der Spielpartnerin angefragt, ob sie den Spielzustand der anderen Spielerin uebernehmen will. Falls sie mit Uebernehmen 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, dass man von anderen Patiencespielerinnen zwecks Kontaktaufnahme gestoert 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, dass 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 Menue ja deaktiviert ist. Bei einer Partie gegen eine andere Spielerin erscheint nach Betaetigung eines Kommandos, das das gegenwaertige Spiel beenden wuerde, ein Dialog ganz eingestellt werden soll oder ob nur das aktuelle Spiel zwecks Neubeginn aufgegeben wird. Bei Betaetigung des Knopfes Beenden erhaelt die Spielpartnerin eine Nachricht, dass das Spiel aufgegeben wurde. Bei Betaetigung von Neues Spiel bekommt die Partnerin die Auswahl, ob sie bereit ist, das derzeitige Spiel zu Gunsten eines neuen abzubrechen, oder nicht.

Der Regeleditor
Der Regeleditor wird durch das Kommando Regeln editieren im Menue Datei aufgerufen. Er oeffnet ein eigenes Fenster mit den Regeln der Patience, die gerade gespielt wird. Im folgenden werden zunaechst die einzelnen Felder des Regeleditors (Abschnitt Die Felder des Regeleditors) und anschliessend die verschiedenen Kommandoknoepfe in den unteren zwei Reihen (Abschnitt Die Kommandos des Regeleditors) beschrieben.

  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) geaendert 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 fuer die Spielerin sichtbare Name der Patience. Er erscheint z.B. im Menue Patience, aber auch in der Titelzeile des gesamten Windows Es wird der externe Name des Regelsatzes in der aktuellen Sprache angezeigt. Da das Spiel (hoechstwahrscheinlich) in jeder Sprache mit einem anderen Namen im Menue erscheinen soll, wird bei Anwahl des externen Namens ein Formular aufgeblaettert, in dem fuer jede bekannte Sprache ein Name eingegeben werden kann Okay-Knopfes verlassen.

Kartensatz
    Hier wird eingestellt, ob mit einem oder zwei Kartensaetzen 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 Kartensaetze (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 koennen zwischen 0 und vier Arbeitsstapel einschliesslich eingestellt werden.

Unten liegende Karten offen
    Mit diesem Auswahlmenue 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 Ruecken 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 gefuellt wird. Es wird immer eine offene Karte oben auf die Stapel verteilt, so dass die Einstellung 0 nicht aussagt, dass gar kein Karte auf den Stapel verteilt wird, sondern dass unter der offenen keine verdeckten Karten mehr liegen.

Ablage Stapel
    Mit diesem Auswahlmenue wird die Regel festgelegt, mit deren Hilfe bestimmt wird, ob auf einem Stapel eine Karte auf eine andere passt. 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, muss der Wert der oberen Karte der naechst groessere sein, bei absteigend entsprechend der naechst kleinere. Bei aufsteigender Regel passt also z.B. ein Bube auf eine 10. Echt, Unecht und Egal bezieht sich auf die Farbe der beiden Karten. Echt heisst, dass beide Karten die gleiche Farbe besitzen muessen, unecht heisst, dass auf eine Karo- oder Herzkarte eine Pik- oder Kreuzkarte passt und umgekehrt. Unecht laesst sich daher auch gut als "`Rot und Schwarz abwechselnd"' beschreiben. Egal sagt aus, dass die Kartenfarbe keine Rolle spielt bei der Entscheidung, ob zwei Karten aufeinander passen.

Teilstapel
    Mit diesem Auswahlmenue wird die Regel festgelegt, mit deren Hilfe bestimmt wird, ob mehrere aufeinander liegende Karten einen beweglichen Teilstapel bilden. Es stehen die selben Kombinationen zur Verfuegung wie fuer die Ablage Stapel (siehe Abschnitt Ablage Stapel) und die zusaetzliche Auswahl nur einzelne Karte. Nur einzelne Karte bedeutet, dass nicht mehrere Karten als ein Teilstapel auf einmal bewegt werden koennen.

Ablage Stock
    Mit diesem Auswahlmenue wird die Regel festgelegt, mit deren Hilfe bestimmt wird, ob auf einem Stock eine Karte auf eine andere passt. Es stehen die Kombinationen aus Aufsteigend oder Absteigend mit Echt oder Komplett zur Auswahl. Es fehlen hier die Kombinationen mit Unecht oder Egal, da Stoecke immer an eine feste Farbe gebunden sind. Komplett heisst, dass keine einzelnen Karten auf den Stock gelegt werden koennen, sondern dass die gesamte Familie bereits auf einem Stapel vereinigt worden sein muss und dann mit einem Zug auf den Stock geschoben wird.

Ablage Strafe
    Mit diesem Auswahlmenue wird die Regel festgelegt, mit deren Hilfe bestimmt wird, ob auf dem Strafstapel eine Karte auf eine andere passt. 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 Auswahlmenue kann bestimmt werden, welchen Wert eine Karte besitzen muss, 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 Stoecke. Da jetzt der Koenig nicht mehr unbedingt der hoechste Wert ist, kann das As (quasi zyklisch) auf ihn gelegt werden.

Stapel Basis
    Mit diesem Auswahlmenue kann bestimmt werden, welchen Wert eine Karte besitzen muss, damit sie auf einen leeren Stapel gelegt werden kann. Es stehen die Einstellungen jede Karte und nur hoechste Karte zur Auswahl. Der Wert der hoechsten Karte ist abhaengig vom Wert der Stockbasis und der Regel fuer 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 Koenig. 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 Auswahlmenue kann bestimmt werden, ob alte Karten des Talons noch aufgenommen werden duerfen. 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 duerfen.

  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 Regelsaetze in einer privaten Directory zu sammeln und die Resource-Variable sprPath (siehe auch Abschnitt Installation) entsprechend zu setzen. Die Resourcevariable enthaelt eine durch : getrennte Liste von Directories, in denen bei Programmstart nach Regelsaetzen gesucht wird. Ein Beispiel:
    Patience*sprPath: /home/krischan/spiel:/usr/lib/X11/patience-1.8/spiel

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

Anwenden
    Ein Aendern 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 veraendert werden. Mit dem Kommando Anwenden koennen nun die vorgenommenen Regelaenderungen in ein neu anzufangendes Spiel uebernommen werden.

Okay
    Ein Aufruf von Okay bewirkt eine Ausfuehrung der Kommandos Speichern, Anwenden und Abbruch, wobei bei negativer Bestaetigung im Speichern- oder Anwenden-Dialog die Abarbeitung abbricht.

Installation

  Installation des ausfuehrbaren Tcl-Programms
Die Entscheidung, unter welchem Pfad das ausfuehrbare Pragramm und die Library-Directory fuer die Patience angelegt werden, ist vom persoenlichen Geschmack abhaengig. Mir fallen da als moegliche Kandidatenkombinationen die in Tabelle Moegliche Pfadnamen fuer binDir und libDir dargestellten ein.
Ausfuehrbares 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
Moegliche Pfadnamen fuer binDir und libDir Wer immer jetzt die Patience einspielt, muss schreibberechtigt fuer die beiden ausgewaehlten 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 uebergeordneten 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. muss 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, muss 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 Menuepunkte anbietet. Nachdem im Menue Configure die angebotenen Einstellungen gemacht wurden, kann im Menue 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 Verfuegung steht oder kein X-Display in der Naehe ist oder sonstige Gruende gegen eine graphische Oberflaeche sprechen, wird gemaess der Punkte 5 bis 7 dieser Liste installiert. Mit dem Editor der Wahl das Makefile editieren und im zweiten Teil (also so ungefaehr ab Zeile 15) die folgenden Variablen den Gegebenheiten auf der aktuellen Maschine und/oder den persoenlichen Vorlieben anpassen. WISH: Dieser Variable wird der vollstaendige Pfadname des Tcl/Tk-Interpreters zugeordnet. Er kann (im Bourne-, Korn- oder aehnlichen 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 Funktionalitaeten auch ueber Rechnergrenzen hinweg nutzen zu koennen, muss hier der Name eines Interpreter-Shells angegeben werden, der die Tcl-DP Prozeduren enthaelt. Dieser Shell heisst in der Regel dpwish. Das Tar-Archiv mit der Distribution heisst tcl-dp3.2.tar.Z und ist u.a. erhaeltlich 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: Fuer die Uebersetzung des erweiterten Patience-Interpreters patsh kann es wichtig sein, diese Variable korrekt zu setzen, falls sich die Tcl-Includedateien an einem ungewoenlichen Ort befinden. Dann make patience aufrufen; nach spaetestens fuenf 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 spaeter von ueberall her nur durch Nennung des Namens aufgerufen werden kann, muss noch der Befehl make install ausgefuehrt werden.

  Der erweiterte Interpreter
Wer Lust hat, kann noch ein C-Programm patsh.c uebersetzen; das geschieht mit Hilfe des Makefiles und einem Aufruf von make patc. Anschliessend wird das erzeugte ausfuehrbare 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 Pruef"|funktionen und damit etwas schneller.

  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 Ausfuehrung 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, Regelsaetzen. Der gewuenschte Name kann auch als Parameter mit uebergeben werden. Die Streitpatience ist daher direkt spielbar durch patience -name streit Es ist also z.B. moeglich, im Rootmenue des Windowmanagers ein Untermenue Patience zu erzeugen, dass 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

  X-Resourcen
Das Programm greift auf einige Resourcevariablen zurueck, die das aeussere Erscheinungsbild aendern. 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 Stoecke
weiss	gray95	Weisse Hintergrundfarbe der Karten
xlogo	/usr/include/X11/bitmaps/xlogo11
		Bitmap oben links in Menueleiste
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 Schattenhoehe
mitStreitbar	False	Vorgabe von Patience/Streitbereit
kartenFont	normal	Vorgabe des Kartenfonts
sprache	deutsch	die Sprache (deutsch oder english)
daemonPort	4567	Portnummer des Patience-Daemons
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 Prioritaet 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/Weiss-Font als Vorgabe fuer die Kartendarstellung gesetzt durch: *patience.kartenFont: sw

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

  Ausstehende Verbesserungen
Alle nicht sichtbaren Karten (auf Stock, Talon und Strafstapel) sollten von der Spielflaeche geloescht werden, damit das Geben und der Verteilcomic schneller gehen.

AUTHOR
krischan@cs.tu-berlin