	     D E S C R I P T I O N  D E  P O P E Y E    4 . 6

Remarques au sujet de la distribution de Popeye:

Popeye est un logiciel libre. Chaque version fournie contient le code
de source entier - meme si quelqu'un n'en a pas besoin. D'apres nous
ce logiciel doit etre public est n'appartient pas a nous
personnellement, meme si nous y avons investi considerablement de
temps. Notre travail ne peut en tout cas pas etre paye, et nous ne le
faisons pas pour gagner de l'argent.

La seule restriction concernant la distribution de Popeye est que
Popeye doit etre distribue integralement.


Feed-back:

Pour envoyer des erreurs out des propositions d'extension, veuillez utiliser
les outils respectifs offerts par sourceforge.net .

Ouvrez dans votre browser
http://sourceforge.net/tracker/?group_id=200122&atid=972237 (erreurs)
http://sourceforge.net/tracker/?group_id=200122&atid=972240 (propositions)

Utilisez le lien "Add new" et remplissez l'information que vous
desirez envoyer dans les champs "Summary" et "Description". Puis
utilisez le bouton "Add Artifact" pour envoyer votre feed-back.



Execution de Popeye:

Change le nom du fichier executable prefere a   py.exe
Avec entree du probleme sur l'ecran:            py
Avec entree du probleme dans un fichier XX:     py XX

parametre de ligne de commande:
-maxmem
	Vous pouvez allouer p.ex. 40960 kilo-octets ou 40 mega-octets
	de la facon suivante
		-maxmem 40960   resp. -maxmem 40M
	pour accelerer la resolution.
	Popeye utilise cette memoire pour eviter de verifier des positions
	intermediaires plusiers fois. Vous pouvez indiquer -maxmem 0 pour
	desactiver cette optimisation.

-maxtime
	Inidication du nombre maximal de secondes que Popeye investit
	a la resolution de chaque probleme. Ce parametre est
	equivalent a l'option maxtemps qui peut etre utilisee dans la
	definition des problemes (voir plus bas).
	Exemple:
		-maxtime 60
	Si un probleme n'est pas completement resolu apres une minute,
	la resolution est continuee avec le probleme suivant.

-regression
	POUR DEVELOPPEURS
	Informations sur la version de Popeye et les temps de
	resolutions sont supprimes des fichiers ecrits.


Finir execution de Popeye:

        CTRL + C 


Description de la langue d'entree de Popeye:

L'entree de Popeye ne distingue pas les majuscules des minuscules. Toute
entree commence par le mot-cle 'DebutProbleme'. Apres avoir entre ce mot-cle, on peut entrer
d'autres commandes parmi les suivantes:

	remarque, auteur, source, titre, protocol,
        condition, option, enonce, senonce, forsyth, pieces, jumeau

L'ordre de ces commandes ne joue aucun role, et les commandes peuvent etre
repetees. En cas de repetition d'une commande de la deuxieme ligne, seulement
la version finale est respectee.
Chaque commande demande des parametres. Commencons avec les commandes
simples:

 - remarque: Ce mot-cle est suivi par une remarque. Le texte suivant
        jusqu'a la fin de la ligne n'a pas d'effet.

 - auteur: Cette commande est utilisee pour l'entree de l' (ou bien
        des) auteur(s) du probleme. Tout le texte est place au-dessus
        du diagramme.  Cette entree est tout a fait volontaire est n'a
        pas d'effet sur le fonctionnement du programme. En cas de
        repetition de la commande 'auteur', toutes le lignes entrees
        sont places au-dessus du diagramme.

 - source: voir auteur
 - titre: voir auteur

 - protocol: demande l'entree d'un nom de fichier. Toutes les sorties
         de Popeye seront protocolees dans ce fichier. Si le fichier
         existe deja, Popeye ajoute les nouvelles sorties a la fin; le
         fichier n'est donc pas efface auparavant.

 - condition: Toutes les conditions du probleme sont a entrer apres ce
         mot-cle, separees par des espaces ou par la fin d'une
         ligne. Les conditions suivantes sont possibles a present:

	Circe
	Madrasi
	Volage
	Hypervolage
	Bichromatique
	Monochromatique
	Grille
	Koeko
	NoirBordCoup
	BlancBordCoup
	Leofamily
	Chinoises
	Patrouille
	SansPrises
	Immun
	ContactGrille
	Imitator
	CavalierMajeur
	Haan
	Sentinelles
	NoirMaximum
	BlancMaximum
	NoirMinimum
	BlancMinimum
	CaseMagique
	Tibet
	DoubleTibet
	Trou
	NoirPriseForce
	BlancPriseForce
	RoisTransmutes
	NoirPoursuite
	BlancPoursuite
	Duelliste
	SansIProm      (= Les pions ne peuvent se promouvoir pas en imitator)
	EchecsVogtlaender
	EchecsEinstein
	Bicolores
	KoekoNouveaux
	AntiCirce
	ReversEchecsEinstein
	Degradierung
	NorskSjakk
	EchecsTraitor
	EchecsAndernach
	NoirCaseForce
	BlancCaseForce
	NoirCaseForceConsequent
	BlancCaseForceConsequent
	RoisReflecteurs
	EchecsCameleon
	EchecsFonctionnaire
	EchecsGlasgow
	EchecsAntiAndernach
	Isardam
	SansEchecs
	PromSeul
	EchecsExclusif
	MarsCirce
	EchecsPhantom
	BlancRoiTransmute
	NoirRoiTransmute
	BlancRoiReflecteur
	NoirRoiReflecteur
	EchecsAntiEinstein
	NoirCaseRoyal
	BlancCaseRoyal
	EchecsPlus
	EchecsBrunner
	EchecsCentral
        EchecsExtinction
	EchecsRepublicain
????    ActuatedRevolvingBoard
        EchecsMessigny
        Woozles
        BiWoozles
        Heffalumps
        BiHeffalumps
	BlancCasePromotion
	NoirCasePromotion
	SansBlancPromotion
	SansNoirPromotion
	EchecsEiffel
????    ActuatedRevolvingCentre
	Maximum
	UltraSchachZwang
	BlancUltraSchachZwang
	NoirUltraSchachZwang
	ShieldedKings
	BlancSansPrises
	NoirSansPrises
	EchecsAlphabetique
	EchecsCameleonLigne
	AMU
????    SingleBox
	MAFF
	OWU
	BlancRoisOscillant
	NoirRoisOscillant
	AntiRois
	AntiMarsCirce
	BlancSuperRoiTransmute
	NoirSuperRoiTransmute
	UltraPatrouille
	RoisEchanges
	DynastieRoyale
	SAT
	StrictSAT
	Take&MakeEchecs
	NoirSynchronCoup
	BlancSynchronCoup
	NoirAntiSynchronCoup
	BlancAntiSynchronCoup
	Masand
	BGL
	AnnanEchecs
	PionNormale
	NoirEchecs
	EchecsGeneve
	VaultingKings
	BlancVaultingKing
	NoirVaultingKing
	EchecsProtee
	Elliuortap
	CameleonPoursuite
	AntiKoeko
	EchecsRoque
	QuiPerdGagne
	EchecsGhost
	Football
	BlancEchecsAlphabetique
	NoirEchecsAlphabetique
	RoisKobul
	Supergardes
	TrousDeVer
	EchecsMarins
	EchecsUltramarins
	Retour
	FaceAFace
	DosADos
	JoueAJoue
	Disparate

	Apres les mots-cle Imitator, CaseMagique, Trou,
	BlancCasePromotion, NoirCasePromotion ou 
	"...CaseForce..." il faut entrer les cases ou se trouvent les 
	imitators, les cases magiques, les trous ou les pieces promues 
	(FrischaufCirce), ou qui sont des cases de promotion blanc ou noir 
	dans la position de diagramme.

	Apres le mot-cle PromSeul il faut entrer le ou les type(s)
	de pieces en le(s)quel(s) la promotion est permise.

	Apres le mot-cle CirceCameleon on peut entrer une liste de
	types de pieces qui definit l'ordre de promotion avant
	renaissance. (Par exemple:
		"CirceCameleon C F T D C" c'est le CirceCameleon normal, 
		"CirceCameleon C D T F C" c'est CirceCameleon reverse).

	La meme notation peut etre utilisee en EchecsCameleon pour
	definir l'ordre des types de pieces. Et la condition auxiliaire
	CameleonSequence peut etre utilisee pour definir cet ordre pour
	les cameleons indiques de facon explicite.

	Apres quelques conditions Circe, Immun, Madrasi, EchecsPhantom
	ou EchecsGeneve, on peut entrer le mot-cle "RexInclusif".

	Pour toutes les conditions AntiCirce, on peut indiquer s'il
	s'agit du type Cheylan ou Calvet. Si rien n'est indique, le
	type utilise est Calvet.

	Pour la condition Isardam, on peut indiquer s'il s'agit du TypeB.

	Pour la condition SingleBox, on peut indiquer s'il s'agit du
	Type1, du Type2 ou du Type3.

	Pour la condition EchecsRepublicain, on peut indiquer s'il s'agit du
	Type1 ou du Type2. Type2 est utilise si le type n'est pas indique.

	Apres la liste des cases magiques, on peut indiquer s'il s'agit du
	Type1 ou du Type2. Type1 est utilise si le type n'est pas indique.

	Pour la condition Sentinelles, on peut indiquer s'il s'agit du
	type "PionAdvers", "PionNeutre", "ParaSentinelles" ou
	"Berolina", de meme que "MaximumBlanc", "MaximumNoir" ou
	"MaximumTotal" suit d'un nombre.

	Apres les conditions EchecsMessigny, (Bi)Woozles,
	(Bi)Heffalumps ou ProteeChess, on peut entrer le mot-cle
	RexExclusif.

	Pour les conditions BlancRoisOscillant ou NoirRoisOscillant on
	peut indiquer s'il s'agit du TypeB ou TypeC.

	Apres Grille, un nombre de variantes peuvent etre indiquees.
	VerticalDecalage, HorizontalDecalage et DiagonalDecalage
	decalent la grille standard d'une rangee et/ou colonne.
	P.ex. la cellule contenant la case a1 consiste de:
		VerticalDecalage:	a1b1
		HorizontalDecalage:	a1a2
		DiagonalDecalage:	a1
	Orthogonal suivi d'une liste de colonnes (a gauche de chaque
	ligne de grille verticale ) et rangees (au-dessous de chaque
	ligne de grille horizontale), sans espaces.
	Irregulier suivi par une liste separee d'espaces de groupes de
	cases qui forment les cellules de la grille. N.B. La cellule la
	plus grande peut etre specifiee sans indication de ses cases,
	parce qu'une cellule et ajoutee contenant les cases qui ne sont
	pas mentionnes dans un groupe.
	Par exemple, la grille standard peut etre indiquee par une des
	trois possibilites suivantes:
		condition grille
		condition grille orthogonale bdf246
		condition grille irreguliere a8a7b8b7 c8c7d8d7 ...
	LigneGrille suivi par une list de lignes ajoute des lignes de
	grille. Cette possibilite devrait exclusivement etre utilisee
	pour ajouter des lignes de grille partielles, qui ne divisent
	pas completement une ou plusieurs cellules (c'est-a-dire pour
	rendre legaux certains coups dans une cellule) puisque
	l'indication de cellules est plus efficace. LigneGrille sont
	indiquees par 4 caracteres; p.ex.
		condition grille lignegrille Ha24 Vc61
	ajoute a la grille standard une ligne horizontale d'une
	longueur de 4 cases a partir du coin bas gauche de la case a2
	et une ligne verticale d'une longueur d'une case a partir du
	coin bas gauche de la case c6.
	Pour ajouters de lignes de grille a l'echiquier vide (sans
	grille standard), on indique
		condition grille irregulier lignegrille Ha24 Vc61
	(N.B. Dans le contexte des echecs grille, les coups vont d'un
	centre de case a l'autre en ligne droite; les pieces qui ne
	bougent pas sur des lignes droites peuvent se comporter de
	facon inattendue; pour etre legal, il suffit qu'un coup touche
	la fin d'une ligne de grille - il n'est pas necessaire qu'il
	croise une ligne de grille (p.ex. Ve11 permet un coup d1-e2).

	Chacune des conditions VaultingKings peut etre suivie par une
	list separee d'espaces de types de pieces. Un VaultingKing en
	echec bouge comme une piece d'un des types indiques. Si
	l'option Transmute est indiquee, les VaultingKings en echec
	bougent exclusivement comme une piece d'un des types indiques
	(mais pas comme roi). Si aucun type de piece n'est indique,
	les VaultingKings en echec bougent comme (des rois et) des
	equihoppers.
	
	Les conditions PriseForce, Maximum et Minimum peuvent etre
	suivies par le mot-cle "Ultra" pour indiquer qu'il s'agit de
	la condition ultra respective.
	
	Circe, AntiCirce, MarsCirce, AntiMarsCirce, ImmunSchach,
	PhantomSchach et GenferSchach peuvent etre suivies d'un nombre
	d'options; les options peuvent etre combinees ad libitum. Toutes les
	combinaisons ne sont pas raisonnables, ni toutes les options pour toutes
	les conditions de base.
	En outre, les options qui appartiennent au meme groupe parmis le 8
	groupes suivants sont normalement mutuellement exclusives.
	Inclusion du roi:
		RexInclusif	(standard pour AntiCirce et MarsCirce)
		RexExclusif	(standard pour les autres conditions)
	Coup/allure/camp determinant:
		CoupDernier 
		Clone		(definit aussi l'allure de la piece renee)
		Couscous
		Malefique	(special avec Equipollents - voir plus bas)
	Restriction a des allures specifiques:
		Avril		(suivie par la liste d'allures)
	Definition des cases de renaissance:
		Equipollents
		Parrain		(== Equipollents CoupDernier)
		ContraParrain	(== Equipollents CoupDernier Malefique)
		Rangee
		Colonne
		Symetrie
		Diagramme
		Echange
		Antipodes
		Super
		Take&Make
		Cage
	Adaptation de la case de renaissance:
		Diametral
		MalefiqueVerticale
		Frischauf
		(Rangee)
	Adaptation de l'allure de la piece renee:
		Cameleon
		Turncoats
		Einstein
		ReversEinstein
	Comportement en case de case de renaissance occupee:
		Relache		(standard dans Circe)
		Strict		(standard sinon)
		Assassin
		Volcan
		Parachute
	Auto-blocage de la piece promue:
		Calvet		(standard)
		Cheylan
	Les noms de condition "traditionnels" suivanta peuvent toujours etre
	utilises; ils permettent d'ajouter RexInclusif ou RexExclusif.
		traditionel:		Indication avec option(s):
		CirceMalefique		Circe Malefique
		CirceEchange		Circe Echange
		CirceCouscous		Circe Couscous
		CirceCameleon		Circe Camaeleon
		CirceEquipollents	Circe Equipollents
		FileCirce		Circe Colonne
		CirceDiagramme		Circe Diagramme
		CirceParrain		Circe LetzterZug Equipollents
		ContraParrain		Circe LetzterZug Equipollents Spiegel
		CirceSymmetrique	Circe Symetrie
		FileCirceMalefique	Circe Colonne Malefique
		CirceAntipoden		Circe Antipodes
		CirceCloneMalefique	Circe Clone Malefique
		SuperCirce		Circe Super
		CirceClone		Circe Clone
		FrischaufCirce		Circe Frischauf
		CirceDiametrale		Circe Diametral
		CirceCouscousMalefique	Circe Couscous Malefique
		CirceAssassin		Circe Assassin
		CirceTurncoats		Circe Turncoats
		CirceDoubleAgents	Circe Turncoats Malefique
		CirceCage		Circe Cage
		CirceTake&Make		Circe Take&Make (aussi connu comme Anti-Take&Make)
		CirceMalefiqueVerticale	Circe MalefiqueVerticale
		EchecsAvril             Circe Super Avril
		AntiCirceMalefique	AntiCirce Malefique
		AntiCirceDiagramme	AntiCirce Diagramme
		AntiFileCirce		AntiCirce Colonne
		AntiSymmetrieCirce	AntiCirce Symetrie
		AntiFileCirceMalefique	AntiCirce Colonne Malefique
		AntiCirceAntipoden	AntiCirce Antipodes
		AntiCirceEquipollents	AntiCirce Equipollents
		AntiCirceClone		AntiCirce Clone
		AntiSuperCirce		AntiCirce Super
		MarsCirceMalefique	MarsCirce Malefique
		AntiMarsMalefiqueCirce  AntiMarsCirce Malefique
		AntiMarsAntipodeanCirce	AntiMarsCirce Antipodes
		ImmunMalefique		Immun Malefique
		ImmunFile		Immun Colonne
		ImmunDiagramme		Immun Diagramme
		ImmunFileMalefique	Immun Colonne Malefique
		ImmunSymmetrique	Immun Symetrie
		ImmunAntipoden		Immun Antipodes
		ImmunEquipollents	Immun Equipollents

 - option: Toutes les options demandees sont a introduire apres ce mot-cle,
	separees par une espace. Les options suivantes seront reconnues:

	Essais          Le jeux d'essais sera affiche
	Defense         Toutes les defenses contre chaque coup seront
			affichees
	Apparent        Le jeux apparent sera affiche
	ApparentSeul    Les blancs jouent aux mats aides (0.1.1...)
	Menace          Pour le mode multi-coups: Cette option doit
			etre suivie par un chiffre. L'adversaire est
			considere comme s'etre defendu avec succes s'il
			n'y a pas de menace en un nombre de coups
			inferieur du chiffre indique.
	Variantes       Les menaces est les variantes seront affichees
	Trace           Les coups seront numerotes et le temps total
			de calculation est affiches.
	Enroute         Cette option est suivie par un chiffre. La
			verification reprend apres le coup numerote par
			le chiffre indique. A utiliser pour continuer
			une verification interrompue
	SansRB          Le probleme a verifier n'a pas de roi blanc.
	SansRN          Le probleme a verifier n'a pas de roi noir.
	Duplex          Il y a une solution pour les blancs et les noirs
	SansMenace      les menaces ne seront pas affichees
	MaxSolutions    Cette option dois etre suivie par un chiffre.
			La verification est termine apres la solution
			numerote par le chiffre indique.
	MaxCasesFuites  Pour le mode multi-coups: Cette option doit
			etre suivie par un chiffre. L'adversaire est
			considere comme s'etre defendu avec succes si
			son roi a egalement ou plus des cases fuites 
			du chiffre indique.
	EnPassant       Cette option doit etre suivie par 3 a 4 cases qui
			indiquent le coup de pion qui vient d'etre joue:
			- case de depart
			- case(s) evitees
			- case d'arrivee
			Cette information est utilisees pour les cles
			potentielles avec prise en passant.
	RoquesMutuellementExclusifs <casetourblanche><casetournoire>
			Les roques avec les tours occupant les cases
			indiquees dans la position de partie initiale
			sont mutuellement exclusifs.
                        Exemple: RoquesMutuellementExclusifs a1h8
                        Pour indiquer plusieurs pairs de roques
                        mutuellement exclusifs, l'option peut etre
                        indiquee plusieurs fois.
	SansEchiquier   L'echiquier n'est pas visible.
	SansVariantesCourtes Les variantes courtes ne seront pas affiches.
	DemiDuplex      L'enonce est seulement verifiee avec les couleurs 
			inversees
	ApresCle        La position est consideree atteinte apres la cle. 
			Par consequence, seulement la solution sera calculee.
	NonTrivial m n  Option pour la verification de longs problemes
			inverses ou (semi)reflexe. Le deuxieme
			parametre n indique que les coups noirs menant
			a une solution en n coups seront consideres
			triviaux (les problemes correctes de plus de n
			coups auront toujours une variante qui ne mene
			pas a une solution en n coups). Le parametre m
			indique que m+1 est le nombre maximal de coups
			non-triviaux que les blancs peuvent accorder
			aux noirs (Exemple pour un mat inverse:
			nontr 0 1: seulement les coup blancs son pris en 
				   consideration qui ne laissent aux noirs 
				   qu'un coup ne menant pas a un s#1).

	Intelligent     Verification intelligente (tres rapide) des mats
			aides multicoups.
			Apres l'option intelligent on peut entrer un chiffre.
			Il s'agit du numero maximum des solutions par
			position de mat.
	MaxTemps        Cette option dois etre suivie par un chiffre.
			La verification d'un probleme est terminee
			apres le nombre de secondes indique.
	SansRoquer	Il faut entrer les cases ou se trouvent les pieces 
			qui ne peuvent plus roquer dans la position de
			diagramme.
	QuodLibet       en s# ou r# un mat direct c'est une solution aussi.
	FinApresSolutionCourtes  Calculation est termine apres detection des
				 solutions courtes.
	Bip             Cette option peut etre suivie par un nombre.
			Popeye emet un certain nombre de bips apres chaque
			solution trouvee.
	SansGrille	(Grille) Supprime les lignes de grille dans
			les diagrammes en texte et LaTeX.
	AjouteGrille	(Grille) Ajoute un diagramme demontrant les
			cellules de la grille. Utile pour les grilles
			irregulieres.
	RetiensPieceMatante	Arreter de resoudre quand aucune piece ne
			reste qui pourrait delivrer le mate.
	DernierePrise	suivi par couleur, type de piece et case comme dans
			la commande "pieces"; indique la prise de piece dans
			le coup qui menait a la position de diagramme.
	ButEstFin	applicable si le but ne mene pas a l'immobilite (p.ex.
			z, x): le jeu se termine si le faux camp atteind au
			but.


 - enonce: Popeye reconnait les enonces suivantes:

	toute combinaison raisonnable de
	
						{#= }	    {#=  }
						{!= }	    {!=  }
						{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 sont les nombres des coups)

	par exemple:

	#3              mat en 3 coups
	HZg74           les noirs aident les blancs a atteindre la case
			d'arrivee g7 en 4 coups
	sKa75           baiser de la piece en a7 inverse en 5 coups
	S+2             echec inverse en 2 coups
	R==3            pat double reflex en 3 coups
	HS#3            mat inverse aide en 3 coups (= mat inverse aide force)
	SER-+7          echec serie en 7 coups
	SEMI-R+4        echec semi-reflexe en 4 coups
	x3              capture en 3 coups
	RECI-H#2        mat aide reciproque en 2 coups (= mat aide Graz)
	RECI-H(=)#2	(pat)mat aide reciproque en 2 coups (les noirs
				 donnent pat ou permettent leur propre mat)
	SER-%4          Gain_de_Piece serie en 4 coups
	H##!4           "gegenmatt" aide en 4 coups
	SER-H##3        "beidmatt" aide serie en 3 coups
	2->ser-h#4      les blancs joue 2 coups, alors ser-h#4
	h003            roque aide en 3 coups
	dia6.5          Plus courte partie justificative en 13 demi-coups
			(apres le 7 coup des blancs)
	ser-dia9        partie justificative serie en 9 coups
	reci-h(=)#4     (pat) mat aide alternative en 4 coups
	ser-!=7         autopat serie en 7 coups
	ser-ct10        Series-direct circuit (switchback) in 10 moves
			(d'une piece blanche)
	h<>3            echange de places aide en 3 coups
			(les noirs aident les blancs a echanger
			l'emplacement de deux de leurs pieces
			relativement a leurs emplacement dans le
			diagramme)
	ser-sctr2       Retour inverse en serie par renaissance en 2 coups
			(les blancs forcent les noirs a effectuer le
			retour d'une piece blanche)
	ser-h<>r5       echange de place aide serie par renaissance en 5
			coups (les noirs aident les blancs a echanger
			l'emplacement de deux pieces noires par
			renaissance)
	#=2             mat ou pat en 2 coups
	h~1             tous les coups aides
	HR#3            mat reflexe aide en 3 coups   (= mat reflex aide force)
	pser-h#6	aide serie avec parades en 6
	phser-s#6	aide serie avec parades en 6 (parades aident)

 - senonce: L'enonce peut aussi etre indique sous forme
	"structuree". Sous cette forme, toutes les enonces peuvent
	etre indiques qui peuvent etre indiques avec la commande
	enonce, mais aussi beaucoup d'enonces additionnels.
	(Exception: les enonces pser ne sont pas supportees actuellement)

	Un enonce indique par senonce a la structure d'un arbre. Le
	jeu commence a la racine, traverse les branches (qui se pevent
	fourcher) et se termine a une ou plusieurs feuilles.

	Apres le mot-cle senonce, la racine est indiquee comme camp au
	trait, puis les branches est feuilles selon le langage definit
	ci-dessous.


	Anatomie d'un senonce
        ---------------------

	Exemple: senonce blanc 5s[#]

	Dans cette stipulation, les Blancs ont le trait. Le jeu
	consiste d'une branche de 5 coups de serie. La branche mene a
	une feuille, dont la seule tache est de verifier si une
	position de mate vient d'etre atteinte.

	La definition d'une branche consiste normalement:
	- de la longueur maximale en demi-coups (dans l'exemple: 5)
	- du type de la branche                 (s pour serie)
	- des feuilles                          (#)
	- des bifurcations                      (aucune dans l'exemple)
	- des restrictions                      (aucune dans l'exemple)

	Le jeu se termine a une ou plusieurs feuilles. Leur definition
	consiste normalement du but (dans l'exemple: #) a atteindre.

	Lors du changement d'une branche a une autre ou a une feuille,
	le trait change. Les Noirs ont donc le trait dans la feuille,
	ce qui signifie que la feuille verifie si les Noirs sont mats.

	L'exemple est donc un synonyme pour

	enonce ser-#5


	Types de branche
	----------------

	Type           Notation    Exemples        Synonymes comme enonce
	Serie          s           5s[#]           ser-#5
	"Bataille"     ad          3a[+]d, 4ad[x]  +2, sx2
	               da          3d[==]a         s==2 option ApresCle
	Aide           hh          5h[=]h          h=2.5

	Les lettres s (coup de serie), a (attaque), d (defense) et h
	(aide - help) representent chacune un demi-coup.

	Une bifurcation qui suit a, h ou s definit le but du coup
	d'attaque; et une bifurcation qui suit d definit contre quoi
	on se defend.

	Note: une branche da est soluble quand le camp qui a le trait
	n'a PAS de refutation.


	Bifurcation menant a une branche
	--------------------------------

	Une bifurcation mene a une branche imbriquee.

	Exemples        Synonymes comme enonce
        3a[1a[#]d]d     semi-r#2
	4hh[1a[#]d]     non supporte (aide semireflexe en 2.5)
	6s[1d[#]a]      ser-s#6


	Branches avec plusieurs feuilles ou bifurcations
	------------------------------------------------

	Apres chaque demi-coup, un but et une bifurcation peuvent etre
        indiques.

	Exemples        Synonymes comme enonce
	4a[#=]d[#=]     s#=2 option quodlibet
        3a[#][1a[#]d]d  semi-r#2 option quodlibet


	Expressions logiques
	--------------------

	Les operateurs suivants peuvent etre appliques a des feuilles
	et des branches pour formuler des expressions:

	Operateur  Signification
	!          Negation
        |          OU
	&          ET

	Exemples         Signification
	!#               le camp qui a le trait n'est pas mate
	!3a[#]d          il n'y a pas de solution a un deux-coups direct
	4ad[#] | 3h[#]h  s#2 ou h#1.5
	1h[#]h & 2hh[#]  #1 et h#1 (c'est-a-dire reci-h#1)

	Les deux operandes des operateurs binaires doivent appartenir
	au meme des trois groupes suivants:
	- feuille  # = zh1 ...
	- attaque  ad hh s
	- defense  da

	Une expression appartient au meme groupe que ses
	operandes. Elle peut donc elle-meme etre l'operande d'une
	expression, p.ex. (comme alternative a des jumeaux):

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

	Les trois expressions partielles ainsi que les expressions |
	appartiennent au groupe attaque.


	Les operateurs sont normalement evalues de gauche a droite. Si
	necessaire, des () peuvent etre utilisees pour definir la
	precedence correcte, p.ex.

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


	Restrictions
	------------

	Les restrictions peuvent etre indiquees en utilisant {}.

	Exemple                Synonyme comme enonce
        3a[1a[#]d]d{!1a[#]d}   r#2

	A noter: meme si la restriction est indiquee apres le d, elle
	est verifiee AVANT chaque coup a, y inclus le premier! Le
	probleme n'a donc pas de solution si la restriction est
	violee dans la position du diagramme.

	Les deux differences principales entre des branches/feuilles
	imbriquees et des restrictions sont:
	- l'exigence definie par une branche ou feuille imbriquee doit
	  seulement etre remplie a la fin du jeu; une restriction doit
	  cependant etre remplie chaque fois que le coup respectif est
	  joue
	- les coups joues lors de la verification d'une restriction
	  n'apparaissent pas dans la solution ecrite sauf dans les deux
	  cas suivants:
	  * si une restriction est violee dans la position du diagramme
	  * si la refutation d'un essai mene a une restriction violee
	    ("defense reflexe")


	Branches a longueur minimale
	----------------------------

	Pour definir la longueur minmale d'une branche, la notation
	m:n peut etre utilisee (m=minimum, n=maximum):

	Exemples    synonym comme enonce
	4:4hh[#]    exact-h#2
	3:5s[#]     pas supporte (series de 3 a 5 moves)


	Operateurs speciaux au debut d'une branche
	------------------------------------------

	Les operateurs >, / et - peuvent apparaitre dans cet ordre au
	debut de la defintion de branches.

	> au debut d'une branche de la definition termine le jeu de la
	branche superieure dans des position ou la branche imbriquee
	a une solution. P.ex. un probleme avec

	senonce blanc 3h[1a[x]d]h

	peut avoir les solutions

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

	La deuxieme sequence est une solution malgre que le but soit
	atteint apres les deux premier demi-coups deja. Si le jeu doit
	se terminer quand le but est atteint, on peut ecrire

	senonce blanc 3h[>1a[x]d]h


	Si la definition d'une branche imbriquee contient l'operateur
	/, les coups joues dans cette branche ne font pas partie de la
	solution ecrite.

	P.ex. la capture forcee par Zugzwang n'appartient pas a la
	solution d'un probleme a enonce "CapZug". CapZug aide en 2.5
	s'ecrit donc

	senonce noir - 5h[/1d[x]a{!+}]h


	Le trait peut etre passe a l'autre camp au debut d'une branche
	avec l'operateur -.

	Exemples        Synonyms as stipulation
	- 7h[#]h        h#3.5
	3h[- 4hh[#]]h   pas supporte (h#4 sans 2eme coup blanc)




 - forsyth: Cette commande est utiliser pour l'entree de la position en
            notation forsyth.

Jusqu'a present, toutes les commandes ont ete assez simples. La commande
suivante est un peu plus compliquee:

 - pieces: Cette commande est utilisee pour l'entree de toutes les pieces
	appartenant au probleme. Apres le mot-cle, la couleur est entree:

	Blanc
	Noir
	Neutre

	On peut alors ajouter 

	Cameleon
	Jigger
	Kamikaze
	Paralysantes
	Royales
	Volage
	Fonctionnaire
	DemiNeutre
	CouleurEchangeantSautoir
	Protee
	Magique
	Imprenable
	FrischAuf

	Suit la liste des pieces comme d'habitude: allure de la piece suivi par
	une liste de cases ou une telle piece est placee. On peut toujours
	changer la couleur des pieces a entrer en entrant le mot-cle convenant.

	Si une piece est placee sur une case occupee, la piece precedente est
	transferee sour la case dans l'au-dela. Dans les conditions Circe
	Volcanique, Circe Parachute, EchecGhost et EchecHantees, les coups depuis
	cette case transferent une piece de l'au-dela dans le monde reel. Sinon,
	les pieces dans l'au-dela permette la promotion de pions dans leur allure.

	Popeye supporte les allures de piece suivantes:

	15      1,5-cavalier
	16      1,6-cavalier
	24      2,4-cavalier
	25      2,5-cavalier
	35      3,5-cavalier
	36      3,6-cavalier
	37      3,7-cavalier
	ai      aigle
	af      aigle fou
	al      alfil
	a       ami
	am      amazone   
	an      antilope   
	ao      mao noctambule
	ar      archeveque   
	as      sauterelle de Andernach ?????????
	at      aigle tour
	b1	bouncer
	b2	tour bouncer
	b3	fou bouncer
	ba      bateau
	bi      bison                           1,3+2,3 bondisseur
	bm      bateau marin
	bo	bob
	bs      berolina superpion
	bt      boy-scout
	bu      bucephale
	c       cavalier
	ca      cardinal
	cc      cavalier racine carree cinquante
	cd      cavalier spirale diagonale
	ch      chameau
	cl	cavalier radial
	cm      cavalier marin
	cn      chameau noctambule
	cr      cavalier rebondissant
	cs      cavalier spirale   
	ct      CAT                             cavalier de troie
	cy      charybdis
	d       dame
	da      dabbabba
	df      double fou-sauterelle 
	dn      dauphin                         sauterelle + kangourou
	dr      dragon   
	ds      double sauterelle 
	dt      double tour-sauterelle 
	ea      equisauteur anglais
	ec      ecureuil   
	eh      ("edgehog", "randschwein")
	e       elan
	ef      elan fou
	eq      equisauteur (non-stop)
	el      elephant			0,1+1,1+1,2
	ep      epine (roi+sauterelle royal)
	et      elan tour
	f       fou
	fc      fou/tour chasseur
	fe      fers
	fl      fou-lion
	fr      fou rebondissant
	fs      fers sauteur                    comme fou, mais case de renaissance different
	g       gnou
	gi      girafe
	gl      gral               	        alfil + sauterelle-tour
	gn      gnou noctambule
	gt      girl-scout
	ha      ("hamster")
	im      imperatrice   
	ka      kangourou
	kl      kangourou lion
	ko      kao
	l       locuste   
	la	lapin
	le      leo
	lf      fou locuste   
	li      lion
	ln      noctambule locuste   
	lr	rose locuste
	lt      tour locuste   
	m       moineaux
	ma      mao
	mf      moineaux fou
	mg      marguerite                      s+m+ai+e+ha
	ml      mao noctambule lion
	mm      moa noctambule lion
	mo      moa
	mt      moineaux tour
	n       noctambule
        n1      (1,1)-Zigzag noctambule (e.g. b1-a3-c2-b4-d3...)
        n2      (2,0)-Zigzag noctambule (e.g. a1-b3-c1-d3-e1...)
        n3      (3,3)-Zigzag noctambule (e.g. a1-b3-d4-e6-g7...)
        n4      (4,0)-Zigzag noctambule (e.g. a1-c2-e1-g2...)
	na      nao				chinois noctambule 
	ne      nereide
	nl      noctambule lion
	nr      noctambule rebondissant 
	o       orphan
	oa      moa noctambule
	ok      okapi                           cavalier + zebre
	or      Orix                            equisateur anglais en lignes de dame
	p       pion
	pa      pao
	pb      pion berolina   
	pc      pion chinois
	pi      piece impuissant
	pm      pion marin
	po      pos\'eidon
	pv      pion renverse     joue en directions opposees du pion normal; se promeut sur la rangee opposee
	pr      princesse   
	qa      equi anglais
	qf      equi francais
        qn      quintessence = (3,1)-Zigzag noctambule (e.g. a1-b3-d2-e4-g3...)
	qq      querquisite
	r       roi
	ra      rao                            rose chinois
	rl      rose-lion
	re      roi des elfes
	ro      rose
	rs      rose sauteur
	s       sauterelle
	s2      sauterelle-2
	s3      sauterelle-3
	sa      sauterelle contrA
	sb	sauteur arbre
	sc      chameau sauteur
	se	sauteur feuille
	sf      sauterelle fou
	sg      gnou sauteur
	si      sirene
	sk      skylla
	sm	sauteur arbre majeur
	sn      sauteur noctambule 
	so      scorpion
	sp      superpion
	sr      sauteur roi
	st      sauterelle tour
	su	sauteur feuille majeur
	sv      sauteur cavalier
	sz      zebre sauteur
	t       tour
	tc      tour/fou chasseur
	tl      tour-lion
	tr      triton
	uu      UbiUbi   
	v       varan   
	va      vao
	vi      vizir
	vs      vizir sauteur
	z       zebre
	ze      zebu                           Cavalier 1,3+1,4
	zn      zebre noctambule
        X/Y     chasseur X/Y                   chasseur en general:
                                               s'eloigne de la ligne de base comme un X
                                               et s'approche d'elle comme un Y;
                                               les coups horizontaux ne sont pas possibles

 - Jumeau: Verification de positions resultant de modifications "simples" 
	de la position de depart. Les modifications suivantes seront acceptees:

    Enonce ...: modification de l'enonce (voir commande enonce).
    Condition ...: modification des conditions feeriques; seulement 
	les conditions nouvelles seront en vigueur.
    Deplacement <case1> <case2>: la piece se trouvant sur case1 est deplace 
	a case2; si une piece se trouve deja sur case2, elle sera ote de la 
	position.
    Echange <case1> <case2>: les pieces se trouvant sur case1 et case2 
	echangent leurs places.
    Ote <case>: la piece place sur case est ote de la position.
    Remplace <piece1> <piece2>: toutes les pieces de type <piece1> sont 
	remplacees par des pieces de type <piece2>; les pieces remplacantes 
	heritent la couleur et les attributs speciaux (paralysante etc.) 
	des pieces remplacees. 
	Exemple: Remplace T F: toutes les tours seront remplacees par des fous.
    Ajoute <Couleur> <Attribut> <Piece><Liste de cases>: les pieces indiquees
	sont ajoutees sur les cases indiquees; des pieces eventuellement 
	presentes sur ces cases seront remplacees. 
	Exemple: jumau ajoute noir para sna6: un noctambule sauteur 
		 paralysant est ajoute sur a6 (voir la commande piece).
    Rotation n: Rotation de la position de n degrees (n=90, 180, 270). 
	Exemple: jumeau rotation 180.
    Miroir a1<-->h1: axe verticale
    Miroir a1<-->a8: axe horizontale
    Miroir a1<-->h8: axe diagonale a8-h1
    Miroir a8<-->h1: axe diagonale a1-h8
	Le parametre n'indique donc pas l'axe!
    Translation <case1> <case2>: Translation de la position entiere, les deux 
	cases indiquant la direction et la longueur de la translation. 
	Exemple: jumeau translation a1 a2: translation de la position en haut 
		entiere par une rangee.
    CouleurEchange: les pieces noires deviennent blanches et vice-versa.

Plusieurs changements peuvent etre indiques pour un meme jumeau. 
Exemple: jumeau ote e7 ajoute blanc de8. 
On note que les commandes peuvent etre abregees.
La position de depart pour un jumeau est la premiere position. Pour partir 
de la position precedente, on ajoute le mot-cle "enplus" a la commande "jumeau".
Exemple: jumeau enplus ote a1.
 - Zeroposition: Cette commande suit a la premiere position; elle indique 
	que cette position n'est pas verifiee. La syntaxe de "Zeroposition" 
	est la meme que pour "Jumeau". 
	Exemple: zero deplace b4 d5. 
	La commande "Jumeau" est utilisee pour les jumeaux suivants.


La commande "FinProbleme" indique que toutes les donnees pour le(s) probleme(s) 
a verifier ont ete entrees. Popeye commence immediatement a verifier le (premier) 
probleme s'il ne remarque pas d'erreurs dans les donnees.


Exemple:


debut
auteur          inconnu
source          inconnue
enonce          #2
pieces          blanc ra3 ta8
		noir  rb1
option          trace essais apparent variantes
fin

Naturellement, cette entree semble etre longue. Mais Popeye reconnait les
mot-cles meme s'il sont raccourcis, pourvus que l'abbreviation reste unique.
Le probleme exemple peut donc aussi etre entre de facon suivante:

debu
aute    inconnu
sour    inconnue
enon    #2
piec    blan   ra3 ta8
	noir   rb1
opti    trai essa apparent vari
finp

Il se peut que la longueur minimale d'une abbreviation ou d'une autre changera
a cause d'une modification de Popeye. Nous essayons de ne pas depasser une
longueur minimale de quatre lettres (ce qui ne marche evidemment pas pour les
mots apparent et apparentseul).

Pour la verification de plusiers problemes, on peut substituer le mot-cle
'finp' par 'asuivre'. En ce cas, apres avoir verifie un probleme, Popeye essaie
de lire le prochain.




specialites des ordinateurs:


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

	1) Nombre maximal de plies de calculation:     999 demi-coups.
	2) Il est toujours possible d'interrompre la verification
	   avec la cle CTRL-C.


Windows-95/-98/-ME:

	1) Nombre maximal de plies de calculation:     699 demi-coups.
	2) Il est toujours possible d'interrompre la verification
	   avec la cle CTRL-C.
	3) utilisation de memoir maximal:              768 MB


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

	1) Nombre maximal de plies de calculation:     699 demi-coups.
	2) Il est toujours possible d'interrompre la verification
	   avec la cle CTRL-C.


MVS, ATARI, macintosh:

	c'est PEUT-ETRE soutenu par:

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


MS-DOS (16 Bit), DR-DOS (16 Bit):
BS2000:
OS/2:
VMS:
	ne plus soutenu ...



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

