	     B E S C H R E I B U N G   V O N   P O P E Y E   4 . 6

Bemerkungen zur Verteilung von Popeye:

Popeye ist freie Software. Der Quellcode ist frei erhaeltlich. Wir
stehen auf dem Standpunkt, dass diese Software oeffentlich sein soll,
und nicht unser ureigenstes Eigentum darstellt, auch wenn wir
inzwischen einiges an Arbeit investiert haben. Diese Arbeit ist
sowieso nicht zu bezahlen, und wir investieren unsere Zeit nicht
deswegen um damit Geld zu verdienen.

Die einzige Einschraenkung besteht darin, dass Popeye vollstaendig
weitergeben wird.


Rueckmeldungen:

Fuer Fehlermeldungen und Erweiterungsvorschluege verwenden Sie bitte die
dafuer vorgesehenen Werkzeuge auf sourceforge.net .

Oeffnen Sie in Ihrem Browser
http://sourceforge.net/tracker/?group_id=200122&atid=972237 (Fehler)
http://sourceforge.net/tracker/?group_id=200122&atid=972240 (Erweiterungen)

Verwenden Sie den Link "Add new" und fuellen Sie in die Felder
"Summary" und "Description" die Informationen ein, welche Sie
uebermitteln moechten. Anschliessend senden Sie Ihre Rueckmeldung mit
"Add Artifact" ab.


Starten von Popeye:

Benennen Sie ihre ausgewaehlte ausfuehrbare Datei um in py.exe
Starten mit Eingabe des Problems am Bildschirm:         py
Starten mit Eingabe des Problems aus einer Datei XX:    py XX

Kommandozeilenparameter:
-maxmem
	Sie koennen beispielsweise mit
		-maxmem 40960   bzw.   -maxmem 40M
	Popeye 40960 Kilobyte (bzw. 40 Megabyte) Speicher zur
	Beschleunigung des Loesungsprozesses zur Verfuegung stellen.
	Popeye verwendet diesen Speicher, um die wiederholte Pruefung der
	selben Zwischenstellung zu vermeiden. Mit der Angabe -maxmem 0
	kann diese Optimierung ausgeschaltet werden.

-maxtime
	Angabe der maximalen Anzahl Sekunden, welche Popeye fuer die
	Loesung jedes Problems verwendet. Dieser Parameter ist
	gleichbedeutend mit der Option maxzeit, welche innerhalb der
	Problemdefinition verwendet werden kann (siehe unten).
	Beispiel:
		-maxtime 60
	Wenn ein Problem nach einer Minute noch nicht vollstaendig
	geloest wird, wird mit dem naechsten Problem (sofern
	vorhanden) weitergefahren.

-regression
	HAUPTSAECHLICH FUER ENTWICKLER
	Unterdrueckt Popeye-Versionsinformation und Loesungszeiten in
	den Ausgabedateien.


Beenden von Popeye:

        CTRL + C  Tasten druecken  (Deutsche Tastatur: STRG + C)


Beschreibung der Eingabe-Sprache fuer Popeye:

Bei der Eingabe werden Gross/Klein-Schreibung nicht unterschieden. Jede
Eingabe fuer Popeye beginnt mit dem Schluesselwort `Anfangproblem'. Nachdem
dieses Kommando an Popeye eingegeben wurde, kann Popeye weitere Kommandos
entgegennehmen. Folgende Kommandos stehen zur Auswahl:

	Bemerkung, Autor, Quelle, Titel, Protokoll,
	Bedingung, Option, Forderung, SForderung, Forsyth, Steine, Zwilling

Die Reihenfolge der Kommandos spielt keine Rolle, und koennen auch mehrfach
gegeben werden. Bei den Kommandos in der zweiten Zeile wird immer das letzte
Kommando ausgefuehrt.
Jedes Kommando erwartet weitere Parameter. Beginnen wir mit den einfacheren
Kommandos:

 - Bemerkung: Dieses Schluesselwort leitet eine Bemerkung ein. Es wird alles
	bis zum Zeilenende ueberlesen und hat keine weitere Auswirkung.

 - Autor: Hier gibt man als Parameter den Autor des Problems an. Es wird der
	ganze Text bis zum Zeilenende ueber dem Diagramm in der Ausgabe
	plaziert. Diese Angabe ist voellig optional, und hat keinen Einfluss
	auf die anderen Eigenschaften des Programms. Wird dieses Kommando
	mehrfach angegeben, so werden auch diese Zeilen zentriert und
	ausgegeben.

 - Quelle: Funktioniert genauso wie Autor.
 - Titel:  Funktioniert genauso wie Autor.

 - Protokoll: Nachfolgend wird ein Dateiname erwartet. Alle weiteren Ausgaben
	von Popeye werden dann in dieser Datei mitprotokolliert. Existiert die
	Datei bereits, so wird an deren Ende weitergeschrieben. Die Datei wird
	vorher nicht geloescht.

 - Bedingung: Nach diesem Schluesselwort sind alle die Bedingungen die das
	Problem erfordert anzugeben. Getrennt durch Zwischenraeume oder
	Zeilenwechsel.
        Folgendes ist momentan moeglich:

	Circe
	Madrasi
	Volage
	Hypervolage
	BichromesSchach
	MonochromesSchach
	Gitterschach
	KoeKo
	SchwarzerRandzueger
	WeisserRandzueger
	Leofamily
	ChinesischesSchach
	PatrouilleSchach
	Ohneschlag
	Immunschach
	KontaktGitter
	Imitator
	CavalierMajeur
	HaanerSchach
	Sentinelles
	SchwarzerLaengstzueger
	SchwarzerKuerzestzueger
	WeisserLaengstzueger
	WeisserKuerzestzueger
	MagischeFelder
	TibetSchach
	DoppelTibetSchach
	Loch                            (= nicht betretbares Feld)
	SchwarzerSchlagzwang
	WeisserSchlagzwang
	TransmutierendeKoenige
	SchwarzerVerfolgungszueger
	WeisserVerfolgungszueger
	DuellantenSchach
	OhneIUW              (= Bauernumwandlungen in Imitator nicht erlaubt)
	VogtlaenderSchach
	AntiCirce
	ReversesEinsteinSchach
	Degradierung
	NorskSjakk
	TraitorChess
	AndernachSchach
	SchwarzesZwangsfeld
	WeissesZwangsfeld
	SchwarzesKonsequentesZwangsfeld
	WeissesKonsequentesZwangsfeld
	Bicolores
	EinsteinSchach
	NeuKoeko
	ReflektierendeKoenige
	ChamaeleonSchach
	BeamtenSchach
	GlasgowSchach
	AntiAndernachSchach
	Isardam
	Ohneschach
	UWnur
	ExklusivSchach
	Marscirce
	PhantomSchach
	WeisserTransmutierenderKoenig
	SchwarzerTransmutierenderKoenig
	WeisserReflektierenderKoenig
	SchwarzerReflektierenderKoenig
	AntiEinsteinSchach
	SchwarzesKoeniglichesFeld
	WeissesKoeniglichesFeld
	PlusSchach
	BrunnerSchach
	ZentralSchach
        AusrottungsSchach
	RepublikanerSchach
????    ActuatedRevolvingBoard
        MessignySchach
        Woozles
        BiWoozles
        Heffalumps
        BiHeffalumps
	UWFeldWeiss
	UWFeldSchwarz
	OhneWeissUW
	OhneSchwarzUW
	EiffelSchach
????    ActuatedRevolvingCentre
	Laengstzueger
	UltraSchachZwang
	WeisserUltraSchachZwang
	SchwarzerUltraSchachZwang
	Schutzkoenige
	WeisserOhneschlag
	SchwarzerOhneschlag
	AlphabetischesSchach
	LinienChamaeleonSchach
	AMU
	NurPartiesatzsteine
	MAFF
	OWU
	WeisseOszillierendeKoenige
	SchwarzeOszillierendeKoenige
	AntiKoenige
	AntiMarsCirce
	WeisserSuperTransmutierenderKoenig
	SchwarzerSuperTransmutierenderKoenig
	UltraPatrouille
	TauschKoenige
	KoenigsDynastie
	SAT
	StrictSAT
	Take&MakeSchach
	SchwarzerSynchronZueger
	WeisserSynchronZueger
	SchwarzerAntiSynchronZueger
	WeisserAntiSynchronZueger
	Masand
	BGL
	AnnanSchach
        NormalBauern
	SchwarzSchaecher
	GenferSchach
	VaultingKings
	WeisserVaultingKing
	SchwarzerVaultingKing
	ProteischesSchach
	Elliuortap
	ChamaeleonVerfolgung
	AntiKoeko
	RochadeSchach
	Schlagschach
	Geisterschach
	Fussball
	WeissesAlphabetischesSchach
	SchwarzesAlphabetischesSchach
	KobulKoenige
	SuperDeckungen
	Wurmloecher
	MarinesSchach
	UltramarinesSchach
	NachHause
	AngesichtZuAngesicht
	RueckenAnRuecken
	WangeAnWange
	Disparate

	Nach den Schluesselwoertern Imitator, MagischeFelder, Loch,
	UWFeldWeiss, UWFeldSchwarz oder irgendeines
	Zwangsfeldes sind die Felder einzugeben, auf denen die
	Imitatoren in der Diagrammstellung stehen bzw. wo die
	magischen Felder oder Loecher sind, bzw. welche Figuren
	Umwandlungsfiguren bei FrischaufCirce sind, bzw. welche Felder
	weisse oder schwarze Umwandlungsfelder sind.

	Dem Schluesselwort UWnur muss eine Liste von durch Leerzeichen
	getrennten Figurenarten folgen. Es darf nur in die angegebenen
	Figurenarten umgewandelt werden.

	Der Bedingung ChamaeleonCirce kann eine Liste von durch
	Leerzeichen getrennten Figuren folgen. Diese definiert die
	Reihenfolge der Umwandlungen vor der Wiedergeburt. (Z. B.:
		"ChamaeleonCirce S L T D S" ergibt das normale
		ChamaeleonCirce
		"ChamaeleonCirce S D T L S" ist reverses ChamaeleonCirce.)

	Auf dieselbe Weise kann bei der Bedingung ChamaeleonSchach fuer alle
	Offiziere und mit der Hilfsbedingung ChamaeleonSequenz fuer die
	explizit festgelegten Chamaeleons die Reihenfolge festgelegt werden
	festgelegt werden.

	Nach Madrasi kann wahlweise noch "RexInklusive" angegeben werden.

	Nach der Isardam Bedingung kann wahlweise noch "TypB"
	angegeben werden.

	Nach der Bedingung NurPartiesatzsteine kann wahlweise
	"Typ1", "Typ2" oder "Typ3" angegeben werden.

	Nach der Bedingung Republikanerscahch kann wahlweise
	"Typ1" oder "Typ2" angegeben werden. Typ2 ist die Vorgabe.

	Nach der Liste der magischen Felder wahlweise "Typ1" oder
	"Typ2" angegeben werden. Typ1 ist die Vorgabe.

	Nach der Sentinelles Bedingung kann wahlweise noch
	"PionAdvers", "PionNeutre", "ParaSentinelles" oder "Berolina"
	angegeben werden, sowie "MaximumWeiss", "MaximumSchwarz" oder
	"MaximumTotal" gefolgt von einer Zahl.

	Nach MessignySchach, (Bi)Woozles, (Bi)Heffalumps und
	ProteischesSchach kann RexExklusive angegeben werden.

	Nach SchwarzeOszillierendeKoenige oder
	WeisseOszillierendeKoenige kann wahlweise noch "TypB" oder
	"TypC" angegeben werden.

        Nach Gitterschach koennen eine Reihe von Varianten angegeben
        werden.
	VertikalVerschieben, HorizontalVerschieben und
	DiagonalVerschieben verschieben Gitter um eine Reihe und/oder
	Linie. Z.B. besteht die Zelle mit dem Feld a1 aus den Feldern:
		VertikalVerschieben:	a1b1
		HorizontalVerschieben:	a1a2
		DiagonalVerschieben:	a1
	Orthogonal gefolgt von einer Liste von Linien (links von jeder
	vertikalen Gitterlinie) und Reihen (unterhalb jeder
	horizontalen Gitterlinie) ohne Zwischenraeumen.
	Unregelmaessig gefolgt von einer durch Leerzeichen getrennten
	Liste von Feldergruppen, welche die Gitterzellen bilden. N.B. Die
	groesste Gitterzelle kann weggelassen werden, weil aus den nicht
	in Gruppen angegebenen Felder eine weitere Zelle gebildet wird.
	Zum Beispiel kann das Standardgitter durch jede der folgende
	Angaben beschrieben werden:
		bedingung gitterschach
		bedingung gitterschach bdf246
		bedingung gitterschach unregelmaessig a8a7b8b7 c8c7d8d7 ...
	Die Angabe   
		bedingung gitterschach unregelmaessig
	ohne Feldliste macht alle Zuege illegal.
	GitterLinie gefolgt von einer Liste von Linien fuegt zusaetzliche
	Linien zum Gitter hinzu. Diese Moeglichkeit sollte ausschliesslich
	zur Angabe von partiellen Gitterlinien verwendet werden, welche
	keine bestehende Gitterzelle vollstaendig zerschneiden (d.h. um
	gewisse Zuege innerhalb einer Gitterzelle legal zu machen), da
	Gitterzellen sparsamer angegeben werden koennen. Gitterlinien
	werden mit 4 Zeichen angegeben, z.B. fuegt
		bedingung gitter gitterlinie Ha24 Vc61
	von der unteren linken Ecke des Felds a2 aus eine 4 Felder lange
	horizontale und von der unteren linken Ecke von c6 aus eine 1 Feld
	lange vertikale Gitterlinie zum Standardgitter hinzu. 
	Um GitterLinien zum leeren Brett (also ohne Standardgitter)
	hinzuzufugen, lautet die Angabe
		bedingung gitter unregelmaessig gitterlinie Ha24 Vc61
	(N.B. Im Kontext von Gitterschach gehen Zuege in einer geraden
	Linie vom Feldmittelpunkt zu Feldmittelpunkt; Figuren, welche
	sich nicht auf geraden Linien bewegen, koennen sich auf
	unerwartete Weise verhalten; damit ein Zug legalist, reicht es
	aus, dass er das Ende einer Gitterlinie nur beruehrt - es ist
	nicht notwendig, dass er eine Gitterlinie schneidet
	(z.B. erlaubt Ve11 Zuege von d1 nach e2).

	Nach den ValtingKings-Bedingungen kann eine durch Leerzeichen
	getrennte Liste von Figurenarten angegeben werden. Ein
	VaultingKing im Schach zieht zusaetzlich wie ein Stein einer
	der angegebenen Arten. Wenn die Option Transmutierend
	angegeben ist, zieht der Koenig ausschliesslich wie ein Stein
	einer der Arten aus der Liste (aber nicht als Koenig). Wenn
	keine Figurenart angegeben ist, ziehen VaultingKings im Schach
	(zusaetzlich) wie Equihopper.

	Nach den Schlagzwang-, Laengst- und
	Kuerzestzueger-Schluesselwoertern kann mit dem Schluesselwort
	"Ultra" angegeben werden, dass die jeweilige Ultra-Bedingung
	gemeint ist.
	
	Nach Circe, AntiCirce, MarsCirce, AntiMarsCirce, ImmunSchach,
	PhantomSchach und GenferSchach koennen eine Reihe von Optionen angegeben
	werden; die Optionen koennen vielfaeltig miteinander kombiniert werden.
	Nicht alle Kombinationen sind sinnfaellig, und nicht alle Optionen fuer
	alle Grund-Bedingungen.
	Zudem schliessen Optionen normalerweise gegenseitig aus, welche zur
	selben der folgenden 8 Gruppen gehören.
	Einbezug des Koenigs:
		RexInklusive	(Vorgabe bei AntiCirce und MarsCirce)
		RexExklusive	(Vorgabe sonst)
	Massgebende(r) Zug/Gangart/Partei:	
		LetzterZug 
		Clone		(bestimmt auch Gangart des Wiedergeborenen)
		Couscous
		Spiegel		(spezielle Bedeutung bei Equipollents - siehe unten)
	Einschraenkung auf Gangart:
		April		(gefolgt von der Liste der Gangarten)
	Bestimmung der Wiedergeburtsfelder:
		Equipollents
		Parrain		(== Equipollents LetzterZug)
		ContraParrain	(== Equipollents Spiegel LetzterZug)
		Reihe
		File
		Symmetrie
		Diagramm
		Platzwechsel
		Antipoden
		Super
		Take&Make
		Kaefig
	Anpassung des Wiedergeburtsfelds:
		Diametral
		VertikalSpiegel
		Frischauf
		(Reihe)
	Anpassung des Wiedergeborenen:
		Chamaeleon
		Turncoat
		Einstein
		ReversesEinstein
	Verhalten bei besetztem Wiedergeburtsfeld:
		Locker		(Vorgabe bei Circe)
		Strikt		(Vorgabe sonst)
		Assassin
		Vulkan
		Fallschirm
	Selbstblock des Wiedergeborenen:
		Calvet		(Vorgabe)
		Cheylan
	Die folgenden "traditionellen" Bedinungsbezeichnungen koennen nach wie
	vor verwendet werden; sie erlauben die zusaetzliche Angabe RexInklusive
	bzw. RexExklusive:
		traditionell:		Angabe mit Option(en):
		SpiegelCirce		Circe Spiegel
		PlatzwechselCirce	Circe PWC
		CouscousCirce		Circe Couscous
		ChamaeleonCirce		Circe Chamaeleon
		EquipollentsCirce	Circe Equipollents
		FileCirce		Circe File
		DiagrammCirce		Circe Diagramm
		CirceParrain		Circe LetzterZug Equipollents
		KontraParrain		Circe LetzterZug Equipollents Spiegel
		SymmetrieCirce		Circe Symmetrie
		SpiegelFileCirce	Circe File Spiegel
		AntipodenCirce		Circe Antipoden
		SpiegelCirceclone	Circe Clone Spiegel
		SuperCirce		Circe Super
		CirceClone		Circe Clone
		FrischaufCirce		Circe Frischauf
		DiametralCirce		Circe Diametral
		SpiegelCouscousCirce	Circe Couscous Spiegel
		AssassinCirce		Circe Assassin
		TurncoatCirce		Circe Turncoat
		DoppelAgentenCirce	Circe Turncoat Spiegel
		KaefigCirce		Circe Kaefig
		CirceTake&Make		Circe Take&Make
		VertikalesSpiegelCirce	Circe VertikalSpiegel
		AprilSchach             Circe Super April
		AntiSpiegelCirce	AntiCirce Spiegel
		AntiDiagrammCirce	AntiCirce Diagramm
		AntiFileCirce		AntiCirce File
		AntiSymmetrieCirce	AntiCirce Symmetrie
		AntiSpiegelFileCirce	AntiCirce File Spiegel
		AntiAntipodenCirce	AntiCirce Antipoden 
		AntiEquipollentsCirce	AntiCirce Equipollents
		AntiCloneCirce		AntiCirce Clone
		AntiSuperCirce		AntiCirce Super
		MarsSpiegelCirce	MarsCirce Spiegel
		AntiMarsMalefiqueCirce  AntiMarsCirce Spiegel
		AntiMarsAntipodeanCirce	AntiMarsCirce Antipoden
		SpiegelImmunSchach	ImmunSchach Spiegel
		FileImmunSchach		ImmunSchach File
		DiagrammImmunSchach	ImmunSchach Diagramm
		SpiegelFileImmunSchach	ImmunSchach File Spiegel
		SymmetrieImmunSchach	ImmunSchach Symmetrie
		AntipodenImmunSchach	ImmunSchach Antipoden
		EquipollentsImmunSchach	Immunschach Equipollents

 - Option: Alles was zur Wirkung kommen soll ist einfach durch Zwischenraum
	getrennt nach dem Schluesselwort anzugeben. Es wird folgendes erkannt:

	Verfuehrung     Verfuehrungen berechnen
	Widerlegung     Dieser Option muss eine Zahl folgen - die Anzahl der
			maximal zu beruecksichtigenden Widerlegungen. (z. B.
			Widerlegung 1 = es werden alle Verfuehrungen im 
			herkoemmlichen Sinn berechnet.
	Satzspiel       Satzspiel berechnen
	Drohung         Fuer Mehrzuegermodus: Dieser Option muss eine
			Zahl folgen. Die gegnerische Partei hat sich
			verteidigt, falls es keine Drohung gibt, die
			kleiner oder gleich dieser (Zuege-)Zahl ist.
	WeissBeginnt    Weiss zieht an im Hilfsmatt (0.1.1...)
	Varianten       Drohungen und Varianten berechnen
	Zugnummern      Es werden die Zugnummern, Zuege und die Rechenzeit
			bis dahin ausgegeben.
	StartZugnummer  Dieser Option muss die Nummer folgen,
			bei der abgebrochen wurde.
	OhneWk          Ohne weissen Koenig
	OhneSk          Ohne schwarzen Koenig
	Duplex          Die Forderung fuer beide Seiten berechnen
	OhneDrohung     Varianten werden ohne Drohungen analysiert
	MaxLoesungen    Dieser Option muss eine Zahl folgen. Nach 
			erreichen von  Zahl  Loesungen bricht Popeye ab.
	MaxFluchtFelder Fuer Mehrzuegermodus: Dieser Option muss eine
			Zahl folgen. Die gegnerische Partei hat sich
			verteidigt, falls die Anzahl der Fluchtfelder
			fuer ihren Koenig groesser oder gleich 
			dieser (Zuege-)Zahl ist.
	EnPassant       Dieser Option folgen 3-4 Felder, welche den zuletzt
			gespielten Bauernzug repraesentieren:
			- Startfeld
			- uebersprungene(s Feld(er)     
			- Zielfeld.
			Diese Information wird fuer moegliche enpassant-
			Schluesselzuege verwendet.
	RochadenGegenseitigAusschliessend <wturmfeld><sturmfeld>
			Die Rochaden der Tuerme, welche in der
			Partieausgangsstellung auf den angegebenen
			Feldern stehen, schliessen sich gegenseitig
			aus.
                        Beispiel: RochadenGegenseitigAusschliessend a1h8
			Fuer die Eingabe von mehreren Kombinationen
			sich ausschliessender Rochaden kann die Option
			mehrfach angegeben werden.
	OhneBrett       Es erfolgt keine Ausgabe des Schachbretts.
	OhneKurzVarianten  Kurzvarianten werden nicht ausgegeben.
	HalbDuplex      Die Forderung nur fuer die Gegenseite berechnen
	NachSchluessel  Die eingegebene Stellung wird als Stellung nach einem
			fiktiven Schluessel aufgefasst und als solche
			analysiert, also nur das Loesungsspiel berechnet.
	NichtTrivial m n  Eine spezielle Option zum Loesen/Kochen/Pruefen von
			langen Selbst- und (Semi-)Reflexaufgaben. Die zweite
			Zahl n gibt an, welche schwarzen Zuege als trivial
			betrachtet werden: ein Zug, der durch ein s#n
			(oder r=n etc) beantwortet werden kann. Bei langen
			Aufgaben (in mehr als n Zuegen) hat Schwarz zu jedem
			Zeitpunkt mindestens einen nicht trivialen Zug, d. h.
			einen Zug, der nicht durch s#n beantwortet werden
			kann. Die Zahl m gibt an, wieviele zusaetzliche nicht
			triviale Zuege Schwarz im gesamten Loesungsverlauf
			von Weiss eingeraeumt werden. Beispiel: nichttr 0 1 -
			die staerkste Einschraenkung. Weiss spielt stets so,
			dass Schwarz immer nur einen Zug hat, der nicht
			sofort (s#1) von Weiss erledigt werden kann.
	Intelligent     Intelligente (schnelle) Pruefung von (Serienzug-)
                        Hilfsmatt/patt-Mehrzuegern.
			Nach der Intelligent Option kann wahlweise noch die
			maximale Anzahl von Loesungen je Mattbild angegeben
			werden.
	MaxZeit         Dieser Option muss eine Zahl folgen. Nach 
			erreichen von  Zahl  Sekunden bricht Popeye ab.
	KeineRochade    Es muessen die Felder der Figuren angegeben werden,
			die in der Diagrammstellung nicht mehr rochieren koennen.
	QuodLibet       Im s# oder r# gilt auch direktes Mattsetzen als
			Loesung.
	StopNachKurzLoesungen   Ende der Berechnung nach Finden von
				Kurzloesungen
	Pieps           Dieser Option kann eine Zahl folgen. Nach jeder
			gefundenen Loesung gibt Popeye eine Zahl von
			Piepstoenen aus.
	OhneGitter	(GitterSchach) Ausgabe von Gitterlinien im Diagramm
			wird unterdrueckt.
	ZeichneGitter	(GitterSchach) Gibt ein zusaetzliches Diagramm
			aus, welches die Gitterzellen verdeutlicht;
			nuetzlich fuer unregelmaessige Gitter.
	HalteMattsetzendenStein	Loesungsvorgang abbrechen, wenn kein Stein
			mehr vorhanden ist, der matt setzen koennte.
	LetzterSchlag	gefolgt von Farbe, Steintyp und Feld wie im Befehl
			"steine"; gibt den Schlagfall im Zug an, welcher zur
			Diagrammstellung gefuehrt hat.
	ZielIstEnde	anwendbar bei Zielen, welche nicht zur Immobilitaet
			fuehren (z.B. z, x): das Spiel ist beendet, sobald
			die falsche Seite das Ziel erreicht.


 - Forderung: Folgende Forderungen kennt Popeye:

	jede sinnvolle Kombination von

						{#= }	    {#=  }
						{!= }	    {!=  }
						{00 }	    {00  }
						{%  }	    {%	 }
						{~  }	    {~	 }
						{ep }	    {ep  }
			   {SER- }   {H }	{#  }	    {#	 }
			   {PSER-}   {S }	{=  }	    {=	 }
	{m->} + {EXACT-} + {PHSER-}+ {R } + ( + {== } + ) + {==  } + n
			   {SEMI-}   {HS}	{+  }	    {+	 }
			   {RECI-}   {HR}	{Zxy}	    {Zxy }
						{x  }	    {x	 }
						{## }	    {##  }
						{##!}	    {##! }
						{ct }	    {ct  }
						{<> }	    {<>  }
						{ctr}	    {ctr }
						{<>r}	    {<>r }
						{c81}	    {c81 }
							    {Kxy }
     
							    {dia } + n{.5}
			   {SER-}			  + {dia } + n
							    {a=>b} + n{.5}
			   {SER-}			  + {a=>b} + n

	(m, n geben die Zugzahl an)

	zum Beispiel:

	#3              Matt in 3 Zuegen
	HZg74           Hilf-Ziel-g7 in 4 Zuegen
	sKa75		Selbst-Kuss des Steins auf a7 in 5 Zuegen
	S+2             Selbstschach in 2 Zuegen
	R==3            Reflexdoppelpatt in 3 Zuegen
	HS#3            Hilfsselbstmatt in 3 Zuegen      (= Hilfszwingmatt)
	SER-+7          Serienzugschach in 7 Zuegen
	SEMI-R+4        Semireflexschach in 4 Zuegen
	x3              Schlag in 3 Zuegen
	RECI-H#2        Reziprokes Hilfsmatt in 2 Zuegen (= Grazer Hilfsmatt)
        RECI-H(=)#2     Reziprokes Hilfs(patt)matt in 2 Zuegen (Schwarz
                        setzt patt oder erlaubt Matt)
	SER-%4          Serienzugsteingewinn in 4 Zuegen
	H##!4           Hilfsgegenmatt in 4 Zuegen
	SER-H##3        Serienzughilfsbeidmatt in 3 Zuegen
	2->ser-h#4      Weiss macht 2 Zuege, dann ser-h#4
	h003            Hilfs-Rochade in 3 Zuegen
	dia6.5          Kuerzeste Beweispartie in 13 Halbzuegen
			(nach dem 7. Zug von Weiss)
	ser-dia9        Serienzug-Beweispartie in 9 Zuegen
	reci-h(=)#4     Hilfsalternativpatt/matt in 4 Zuegen
	ser-!=7         Serienzug-Eigenpatt in 7 Zuegen
	ser-ct10        Serienzug-Rueckkehr in 10 Zuegen
	h<>3            Hilfsplatzwechsel in 3 Zuegen
			(2 weisse Steine wechseln den Platz in der
			Diagrammstellung)
	ser-sctr2	Serienzug-Selbstrueckkehr durch Wiedergeburt
			in 2 Zuegen (Weiss zwingt Schwarz, einen
			weissen Stein wiedergebaeren zu lassen)
	ser-h<>r5	Serienzug-Hilfsplatzwechsel durch
			Wiedergeburt in 5 Zuegen (Schwarz hilft Weiss,
			den Platzwechsel zweier schwarze Figuren per
			Widergeburt zu vervollstaendigen)
	#=2             Matt oder Patt in 2 Zuegen
	h~1		Alle moeglichen Hilfs-Zuege 
	HR#3            Hilfsreflexmatt in 3 Zuegen
	pser-h#6	Paraden-Serienzughilfsmatt in 6
	phser-s#6	Paraden-Serienzugselbstmatt in 6 (Paraden sind
			Hilfszuege)

	SEMI wirkt natuerlich nur im Zusammenhang mit Reflexforderungen.

 - SForderung: Die Forderung kann auch in "strukturierter" Form
	angegeben werden. In dieser Form lassen sich alle Forderungen
	angeben, welche sich auch in traditioneller Form mit dem Befehl
	"Forderung" angeben lassen, aber darueberhinaus viele mehr.
	(Ausnahme: pser-Forderungen werden zurzeit nicht unterstuetzt)

	Eine mit SForderung angegebene Forderung ist wie ein Baum
	aufgebaut: das Spiel beginnt an der Wurzel, geht ueber Aeste,
	welche sich gabeln koennen, und endet in einem oder mehreren
	Blaettern.

	Nach dem Schluesselwort SForderung wird an der Wurzel die Seite
	angegeben, welche am Zug ist, dann die Aeste und Blaetter in
	der im folgenden beschriebenen Sprache.


	Anatomie einer SForderung
	-------------------------

	Beispiel: sforderung weiss 5s[#]

	In dieser Forderung ist Weiss am Zug. Das Spiel besteht aus
	einem Ast, welcher in ein Blatt muendet. Der Ast besteht
	aus 5 *S*erienzuegen; im Blatt wird lediglich geprueft, ob
	eine Mattstellung erreicht worden ist.

	Die Definition eines besteht normalerweise aus:
	- der maximalen Laenge in Halbzuegen (im Beispiel 5)
	- dem Typ des Asts                   (s fuer Serie)
	- Blaetter                           (#)
	- Gabelungen                         (kommen im Beispiel nicht vor)
	- Einschraenkungen                   (kommen im Beispiel nicht vor)

	Das Spiel endet in einem oder mehreren Blaettern. Ihre
	Definition besteht normalerweise aus dem Ziel (im Beispiel:
	#), welches erreicht werden soll.

	Beim Wechsel von einem Ast in einen anderen oder in ein Blatt
	aendert der Anzug. Im Beispiel ist also im Blatt Schwarz am
	Zug; d.h. das Blatt prueft, ob Schwarz matt ist.

	Das Beispiel ist also ein Synonym fuer

	forderung ser-#5


	Ast-Typen
	---------

	Typ            Notation   Beispiele       Synonyme als forderung
	Serie          s          5s[#]           ser-#5
	"Kampfspiel"   ad         3a[+]d, 4ad[x]  +2, sx2
	               da         3d[==]a         s==2 option nachschluessel
	Hilfsspiel     hh         5h[=]h          h=2.5

	Die Buchstaben s (Serienzug), a (Angriffszug), d
	(Verteidigungszug - defense) und h (Hilfszug) stehen jeweils
	fuer einen Halbzug.

	Eine a, h or s nachgestelle Gabelung legt fest, was mit dem
	betreffenden Zug zu erreichen ist, eine d nachgstellte
	Gabelung, wogegen der Zug verteidigt.

	Beachte: Ein da-Ast ist loesbar, falls die Seite am Zug KEINE
	Widerlegung hat.


	Gabelung in einen Ast
	---------------------

	Eine Gabelung fuehrt zu einem verschachtelten Ast.

	Beispiel        Synonyme als forderung
        3a[1a[#]d]d     semi-r#2
	4hh[1a[#]d]     nicht unterstuetzt (Hilfs-Semireflexmatt in 2.5)
	6s[1d[#]a]      ser-s#6


	Aeste mit mehreren Blaettern oder Gabelungen
	--------------------------------------------

	Nach jedem Halbzug kann je ein Blatt und eine Gabelung angegeben
	werden.

	Beispiele       Synonyme als forderung
	4a[#=]d[#=]     s#=2 option quodlibet
        3a[#][1a[#]d]d  semi-r#2 option quodlibet


	Logische Ausdruecke
	-------------------

	Auf Blaetter und Aeste koennen mit folgenden Operatoren
	Ausdruecke gebildet werden:

	Operator  Bedeutung
	!         Negation
        |         ODER
	&         UND

	Beispiele        Bedeutung
	!#               die Seite am Zug ist nicht matt
	!3a[#]d          es gibt keine Loesung zum direkten Matt in 2 Zuegen
	4ad[#] | 3h[#]h  s#2 oder h#1.5
	1h[#]h & 2hh[#]  #1 und h#1 (d.h. reci-h#1)


	Bei den binaeren Operatoren muessen beide Operanden der
	gleichen der folgenden drei Gruppen angehoeren:
	- Blatt         # = zh1 ...
	- Angriff       ad hh s
	- Verteidigung  da

	Ein Ausdruck gehoert der selben Gruppe an wie sein(e)
	Operand(en) und kann somit seinerseits Operand eines Ausdrucks
	sein, z.B. (als Alternative zu einer Drillingsbildung):

	3a[#]d & 4hh[#] & 4ad[#]

	Alle drei Teilausdruecke und somit auch die |-Ausdruecke
	gehoeren zur Gruppe Angriff.


	Die Operatoren werden normalerweise von links nach rechts
	ausgewertet. Wenn notwendig, kann der Vorrang mit ()
	festgelegt werden, z.B.:

	4hh[#] & ( 4ad[#] | 4hh[=] )


	Einschraenkungen
	----------------

	Neben Gabelungen koennen in Aesten auch Einschraenkungen
	definiert werden. Einschraenkungen werden von geschweiften
	Klammern ({}) umgeben.

	Beispiel               Synonym als forderung
        3a[1a[#]d]d{!1a[#]d}   r#2

	Beachte: auch wenn die Einschraenkung auf das d folgt, wird
	sie VOR jedem Angriffszug ueberprueft, auch vor dem ersten! 
	Wenn Weiss also in der Beispielforderung in der
	Diagrammstellung direkt matt setzen kann, hat die Aufgabe
	keine Loesung.

	Die beiden Hauptunterschiede zwischen einem verschachtelten
	Ast bzw. Blatt und einer Einschraenkung sind:
        - der/das verschachtelte Ast/Blatt muss nur am Ende des Spiels
	  erfuellt sein, die Einschraenkung hingegen jedesmal bevor der
	  betreffende Zug gespielt wird
	- die bei der Ueberpruefung einer Einschraenkung gespielten
	  Zuege tauchen mit zwei Ausnahmen in der Ausgabe nicht auf:
	  * wenn eine Einschraenkung bereits in der Diagrammstellung
	    nicht erfuellt ist
	  * wenn die Widerlegung einer Verfuehrung dazu fuehrt, dass
	    eine Einschraenkung nicht erfuellt ist
	    ("Reflexverteidigung")


	Aeste mit minimaler Laenge
	--------------------------

	Wenn fuer einen Ast neben der maximalen auch die minimale
	Laenge definiert werden soll, wird die Syntax m:n
	verwendet (m=minimale, n=maximale Laenge):

	Beispiele   Synonym als forderung
	4:4hh[#]    exact-h#2
	3:5s[#]     nicht unterstuetzt (Serienzugmatt in 3-5 Zuegen)


	Spezielle Operatoren am Anfang eines Asts
	-----------------------------------------

	Die drei Operatoren >, / und - koennen in dieser Reihenfolge
	am Anfang der Definition von Aesten vorkommen.

	> am Anfang eines verschachtelten Asts beendet das Spiel im
	uebergeordneten Ast in Stellungen, in denen der
	verschachtelte Ast eine Loesung hat. Z.B. kann ein Problem
	mit

	sforderung weiss 3h[1a[x]d]h

	die Loesungen

	1.g3-g4 h5*g4 x 
	1.g3-g4 h5*g4   2.h4-h5 g4*f3 x 

	haben; die lange Zugfolge loest, obwohl das Ziel schon nach
	ihren ersten beiden Halbzuegen erreicht ist. Wenn das Spiel mit
	dem erreichten Ziel beendet sein soll, schreibt man als
	sforderung weiss 3h[>1a[x]d]h.


	Der Operator / am Anfang eines verschachtelten Asts bewirkt,
	dass die in diesem Ast gespielten Zuege nicht in der Ausgabe
	erscheinen.

	Z.B. gehoert in der "CapZug"-Forderung der durch Zugzwang
	erzwungene Schlagzug nicht mehr zur Loesung. Hilfs-CapZug in
	2.5 schreibt sich als

	sforderung schwarz - 5h[/1d[x]a{!+}]h


	Der Wechsel des Zugrechts am Anfang eines Asts kann durch den
	Operator - bewirkt werden.

	Beispiele       Synonym als forderung
	- 7h[#]h        h#3.5
	3h[- 4hh[#]]h   nicht unterstuetzt (h#4 ohne 2. weissen Zug)



 - Forsyth: Mit diesem Kommando kann die Stellung in Forsyth Notation
	    angegeben werden.

Soweit sind alle Kommandos (ausser SForderung) sehr einfach. Etwas
aufwendiger ist das Kommando

 - Steine: Dieses Kommando spezifiziert alle Steine die zum Problem gehoeren.
	Nach dem Schluesselwort muss die Farbe des oder der folgenden
	Steine(s) angegeben werden:

	Weiss
	Schwarz
	Neutral

	Anschliessend konnen optional auch noch:

	Chamaeleon
	Jigger
	Kamikaze
	Koeniglich
	Paralysierend
	Volage
	Beamtet
	Halbneutral
	SprungbockFarbeWechselnd         (nur bei Huepfern !)
	Proteisch
	Magisch
	Unschlagbar
	FrischAuf

	angegeben werden. 
	Nach diesen Spezifikationen kommt die Liste der Figuren, 
	wie man sie gewoehnlich notiert:
	Kuerzel der Gangart, gefolgt von einer Liste von Feldern, auf denen eine
	solche Figur plaziert werden soll. Zu jeder Zeit ist es moeglich,
	Figuren einer anderen Farbe anzugeben, einfach durch das Angeben des
	entsprechenden Schluesselwortes.
	
	Wenn ein Stein auf einem besetzen Feld plaziert wird, wird der vorherige
	Stein unter dem Feld zuoberst in die Unterwelt versetzt. In den
	Maerchenbedingungen Circe Vulkan, Circe Fallschirm, Geisterschach und
	Spukschach werden Steine aus der Unterwelt durch Abzug vom Feld in die
	reale Welt zurueckgeholt. Ansonsten ermoeglichen Steine in der Unterwelt
	hoechstens die Bauernumwanldung in ihre Gangart.

	Popeye unterstuetzt folgende Gangarten:

	15      1,5-Springer
	16      1,6-Springer                    Flamingo
	24      2,4-Springer
	25      2,5-Springer                    Korsar
	35      3,5-Springer
	36      3,6-Springer
	37      3,7-Springer
	ad      Adler                           0,1+1,1  90 Grad Huepfer
	ag      Andernachgrasshuepfer
	al      Alfil                           2,2 Springer
	am      Amazone                         0,1+1,1 Reiter + 1,2 Springer
	an      Antilope                        3,4 Springer
	ao      MaoReiter
	b       Bauer   
	b1	Bouncer
	b2	Turmbouncer
	b3	Laeuferbouncer
	bb      Berolina Bauer   
	bh	Blatthuepfer
	bi      Bison                           1,3+2,3 Springer
	bo	Bob                             wie Hase, aber ueber vier Sprungboecke
	bs      Berolina Superbauer
	bu      Wurzel-25-Springer (Bucephale)  3,4+0,5 Springer
	ca      Kamel                           1,3 Springer
	cb      Chinesischer Bauer              
	ch      Kamelreiterhuepfer
	cr      Kamelreiter                     1,3 Reiter
	ct      CAT (cavalier trojan)
	cy      Charybdis
	d       Dame                            0,1+1,1 Reiter
	da      Dabbaba                         0,2 Springer
	de      Delphin                         Grashupfer + Kaenguruh
	dg      Doppelgrashuepfer
	dl      Doppellaeuferhuepfer
	dr      Drache                          Bauer + 1,2 Springer
	ds      Diagonalspiralspringer
	dt      Doppelturmhuepfer
	du      Dummy
	ei      Eichhoernchen                   0,2+1,2+2,2 Springer
	ek      Erlkoenig                       0,1+1,1 Springer
	el      Elch                            0,1+1,1  45 Grad Huepfer
	eq      Equihopper
	er      Erzbischof   
	et      Elefant				0,1+1,1+1,2 Reiter   
	f       Freund
	fe      Fers                            1,1 Springer
	fr      Fersreiter                      wie Laeufer, aber anderes Wiedergeburtsfeld
	g       Grashuepfer                     0,1+1,1 Huepfer
	g2      Grashuepfer-2
	g3      Grashuepfer-3
	gb	Grosser Blatthuepfer
	gh      Gnureiterhuepfer
	gi      Giraffe                         1,4 Springer
	gl      Gral                            Alfil + Turmhuepfer
	gn      Gnu                             1,2+1,3 Springer
	gr      Gnureiter                       1,2+1,3 Reiter
	gu	Grosser Baumhuepfer
	h       Heuschrecke   
	ha      Hamster                         0,1+1,1 180 Grad Huepfer
	he	Hase                            Lion Variante des Kanguruhs
	hl      Laeuferheuschrecke   
	hn      Nachtreiterheuschrecke
	ht      Turmheuschrecke   
	k       Koenig                          0,1+1,1 Springer (koeniglich)
	ka      Kaenguruh                       wie GrasHuepfer ueber zwei
						Boecke, die nicht hinter-
						einander stehen muessen.
	kg      KontraGrashuepfer               huepft auf D-Linien ueber
						benachbarten Sprungbock, aber
						beliebig weit.
	kh      Koenigshuepfer
	kl      Kardinal
	kn      Kaiserin                        0,1 Reiter + 1,2 Springer
	ko      Kao
	l       Laeufer                         1,1 Reiter
	la      Laeuferadler                    1,1 90 Grad Huepfer
	lc      Laeuferelch                     1,1 45 Grad Huepfer
	le      Leo                             Zieht wie Dame, schlaegt wie Lion
	lh      Laeuferhuepfer
	li      Lion                            0,1+1,1 beliebig weit Huepfer
	lj      Laeufer/Turm-Jaeger
	lk      Kaenguruh-Lion
	ll      Laeufer-Lion
	lr	Rosen-Heuschrecke
	ls      Laeuferspatz                    1,1 135 Grad Huepfer
	ma      Mao                             (Wie Springer) Gerade-Diagonal
	mb      Mariner Bauer
	mc      marines Schiff
	mg      Marguerite                      g+sp+ad+el+ha
	ml      Maoreiterlion
	mm      Moareiterlion
	mo      Moa                             (Wie Springer) Diagonal-Gerade
	ms      Mariner Springer
	n       Nachtreiter                     1,2 Reiter
	na      Nao				chinesischer Nachtreiter
	nd      Nereide
	ne      Non-stop Equihopper
	nh      Nachtreiterhuepfer
	nl      Nachtreiterlion
	nr      Reflektierender Nachtreiter
	o       Orphan
	oa      MoaReiter
	od      Odysseus
	ok      Okapi                           Springer + Zebra
	or      Orix                            Englischer Equihopper auf Damenlinien
	pa      Pao                             Zieht wie Turm, wirkt wie Turm-Lion
	pf      Pfadfinder
	pn      Pfadfinderin
	po      Poseidon
	pr      Prinzessin                      1,1 Reiter + 1,2 Springer
	qe      EquiEnglisch                    "EquiApproacher" kann unterbrochen werden
	qf      EquiFranzoesisch                "EquiApproacher" kann nicht unterbrochen werden
        qn      Quintessence = (3,1)-Zigzag Nachtreiter (e.g. a1-b3-d2-e4-g3...)
	ra      Rao                             chinesische Rose
	rb      ReversBauer   zieht umgekehrt wie ein "normaler" Bauer; wandelt auf entgegengesetzter Reihe um
	rd      Randschwein
	rh      RosenHuepfer
	rl      Reflektierender Laeufer   
	rn      RosenLioN
	ro      Rose   
	rp	RadialsPringer
	rs      Reflektierender Springer
	s       Springer                        1,2 Springer
        s1      (1,1)-Zigzag Nachtreiter (e.g. b1-a3-c2-b4-d3...)
        s2      (2,0)-Zigzag Nachtreiter (e.g. a1-b3-c1-d3-e1...)
        s3      (3,3)-Zigzag Nachtreiter (e.g. a1-b3-d4-e6-g7...)
        s4      (4,0)-Zigzag Nachtreiter (e.g. a1-c2-e1-g2...)
	sc      Schiff
	sb      Superbauer
	sh      Springerhuepfer
	si      Sirene
	sk      Skylla
	so      Skorpion			Erlkoenig + Grashuepfer
	sp      Spatz                           0,1+1,1 135 Grad Huepfer
	ss      Spiralspringer   
	st      Stachel (Koenig + koeniglicher Grashuepfer)
	t       Turm                            0,1 Reiter
	ta      Turmadler                       0,1 90 Grad Huepfer
	tc      Turmelch                        0,1 45 Grad Huepfer
	th      Turmhuepfer
	tj      Turm/Laeufer-Jaeger
	tl      Turm-Lion
	tr      Triton
	ts      Turmspatz                       0,1 135 Grad Huepfer
	uh	Baumhuepfer
	uu      UbiUbi                          beliebig viele 1,2 Spruenge
	va      Vao                             Zieht wie Laeufer, wirkt Laeufer-Lion
	wa      Waran                           0,1+1,2 Reiter
	we      Wesir                           0,1 Springer
	wr      Wesirreiter                     wie Turm, aber anderes Wiedergeburtsfeld
	wf      Wurzel-50-Springer              1,7+5,5-Springer
	z       Zebra                           2,3 Springer
	ze      Zebu                            1,3+1,4-Springer
	zh      Zebrareiterhuepfer
	zr      Zebrareiter                     2,3 Reiter
        X/Y     X/Y-Jaeger                      allgemeiner Jaeger:
                                                von der jeweiligen
                                                Grundreihe weg wie ein
                                                X, in Richtung
                                                Grundreihe wie ein Y;
                                                horizontale Zuege
                                                nicht erlaubt

 - Zwilling: Loesen/pruefen von Stellungen, die sich durch "einfache"
	Veraenderungen aus der Ausgangsstellung ergeben. Folgende Angaben
	sind moeglich:
    Forderung ...: Die Forderung wird geaendert. Vergleiche das entsprechende
	Grundkommando.
    Bedingung ...: Aenderung der Maerchenbedingungen. Alle alten Bedingungen
	werden ungueltig und die neu eingegebenen wirksam.
    Versetze <Feld1> <Feld2>: Versetzung der Figur von Feld1 nach Feld2; eine
	eventuell auf schon auf Feld2 stehende Figur wird dabei entfernt.
	Beispiel: zwilling versetze a3 b4.
    Tausche <Feld1> <Feld2>: Die auf Feld1 und Feld2 stehenden Figuren tauschen
	ihre Plaetze. Beispiel: zwilling tausche a3 b4.
    Entferne <Feld>: Die auf dem betreffenden Feld befindliche Figur wird
	entfernt, z. B. zwilling entferne e5.
    Ersetze <Figur1> <Figur2>: Alle Steine der Art <Figur1> werden durch
	Steine der Art <Figur2> ersetzt. Farbe und weitere
	Steinspezifikationen (wie paralysierend etc.) bleiben erhalten.
	Beispiel: zwilling ersetze T L 
		  alle Tuerme werden durch Laeufer ersetzt.
    Hinzufuegen <Farbe> <Steinspezifikationen> <Steinart><Feldliste>:
	Hinzufuegen von Steinen, ggf. werden Steine
	ueberschrieben. Beispiel: zwilling hinzufuegen schw para NHa6
	- ein schwarzer paralysierender Nachtreiterhuepfer wird auf a6
	ergaenzt. Siehe auch das Steine-Kommando.
    Drehung n: Drehung um n Grad nach links (n=90, 180, 270). Beispiel:
	zwilling drehung 180.
    Spiegelung a1<-->h1: Spiegelung an der vertikalen Mittellinie,
    Spiegelung a1<-->a8: Spiegelung an der horizontalen Mittellinie,
    Spiegelung a1<-->h8: Spiegelung an der Diagonalen a8-h1,
    Spiegelung a8<-->h1: Spiegelung an der Diagonalen a1-h8.
	Es wird also nicht die Spiegelungslinie angegeben, sondern in welches
	Feld das Feld a1 (bzw. h1) uebergeht.
    Verschiebung <Feld1> <Feld2>: Verschiebung der gesamten Stellung, wobei
	die Verschiebungsrichtung durch die beiden angegebenen Felder bestimmt
	wird: Feld1 geht in Feld2 ueber. Beispiel: zwilling verschiebe a1 a2 -
	die Stellung wird 1 Feld nach oben verschoben.
    Farbwechsel: schwarze Steine werden weiss und umgekehrt.

	Es koennen pro Zwilling auch mehrere Aenderungen angegeben werden,
	z. B. zwill entf e7 hinzu weiss de8. Wie man sieht koennen auch die
	Kommandos fuer die Zwillingsbildung abgekuerzt werden.
	Die Stellungsaenderungen beziehen sich standardmaessig auf die Grund-
	stellung. Sollen sich alternativ die Veraenderungen auf den jeweils
	unmittelbar zuvor geloesten Zwilling beziehen, so ist dem
	Kommando "Zwilling" ein "ferner" anzufuegen. 
	Z. B. zwilling ferner entferne a1.

 - Nullstellung: Dieses Kommando kann alternativ zum Kommando "Zwilling"
	angegeben werden und zeigt an, dass die Grundstellung nicht zu loesen
	ist. Dem Kommando muessen unmittelbar die Veraenderung fuer die erste
	zu loesende Stellung folgen. Beispiel: null versetze b4 d5
					       zwill versetze c5 b5.


Dass alle Daten eingegeben sind, die das Problem beschreiben, wird
Popeye durch das Kommando `Endeproblem' mitgeteilt.
Sofort danach startet Popeye mit der Verarbeitung der Eingabe, und versucht
das Problem zu loesen, wenn keine Eingabefehler festgestellt worden sind.

Hier eine Beispiel-Eingabe:

Anfangproblem
Autor           Unbekannt
Quelle          Ebenso
Forderung       #2
Steine          Weiss   Ka3 Ta8
		Schwarz Kb1
Option          Zugnummer Verfuehrung Satzspiel Varianten
EndeProblem

Diese Eingabe erscheint natuerlich lang. Popeye erkennt aber die einzelnen
Schluesselworte, auch wenn sie abgekuerzt werden. Die Symbole muessen nur 
eindeutig abgekuerzt werden. Man kann das obige Problem also auch so
eingeben:

Anfa
Auto    Unbekannt
Quel    Ebenso
Ford    #2
Stei    Weis Ka3 Ta8
	Schw Kb1
Opti    Zugn Verf Satz Vari
Ende

Es kann sein, dass sich in Zukunft die Laenge der eindeutigen
Abkuerzungen aendert, wenn Popeye erweitert wird. Wir sind aber
bestrebt die Schluesselworte mit den ersten vier Buchstaben immer
eindeutig abkuerzbar zu halten. Wenn sie jetzt mit weniger abkuerzbar
sind, ist das keine Gewaehr fuer die Zukunft.

Wenn man mehrere Probleme in einem Rutsch loesen will, so kann man anstatt
des letzten `EndeProblem' das Schluesselwort `WeiteresProblem' angeben.
Dann erwartet Popeye nachdem er das gerade eingegebene Problem geloest hat
die Eingabe eines weiteren Problems.



Besondere betriebssystemabhaengige Dinge:


UNIX, SINIX, XENIX, ULTRIX, MUNIX, SUNOS, SOLARIS, AIX, HPUX, IRIX, LINUX, BSD:

	1) Maximale Rechentiefe:                999 Halbzuege
	2) Die Loesung kann jederzeit durch die CTRL-C Tastenkombination
	   abgebrochen werden.


Windows-95/-98/-ME:

	1) Maximale Rechentiefe:                699 Halbzuege
	2) Die Loesung kann jederzeit durch die CTRL-C Tastenkombination
	   abgebrochen werden.
	3) Maximal benutzbare Speichergroesse:  768 MB


Windows-NT/-2000/-XP:
MS-DOS (32 Bit), DR-DOS (32 Bit):

	1) Maximale Rechentiefe:                699 Halbzuege
	2) Die Loesung kann jederzeit durch die CTRL-C Tastenkombination
	   abgebrochen werden.


MVS, ATARI, macintosh:

	wird VIELLEICHT noch unterstuetzt durch:

	MVS:       Harald Denker
	ATARI:     Harald Denker
	macintosh: Stefan Brunzen


MS-DOS (16 Bit), DR-DOS (16 Bit):
BS2000:
OS/2:
VMS:
	werden nicht mehr unterstuetzt ...




Thomas Maeder, Stephen Emmerson, Norbert Geissler, Torsten Linss, Elmar Bartel
