PgnScanner
Dernière version : 0.80
(+ accbook.dll v1.2)

 

 

English translation

  • accbook.dll permet maintenant aux programmeurs de lire facilement les répertoires d'ouvertures générés par PgnScanner

  • Pour plus d'infos voir aide en ligne (commande 'help').

  • Vous pouvez faire remonter des bugs découverts ici

 

Download

Dernière mise-à-jour

  • correction et amélioration de la commande DBL (détection de doublons)
  • ajout de l'option "reverse" à la commande CUT pour couper les demi-coups en partant de la fin
  • création de la commande SUB pour soustraire des parties à un fichier PGN
  • correction du scan "BestPerf" qui ne lisait que les champs elo calculés avec RunElo

 

 

Présentation

PgnScanner est un outil en ligne de commandes permettant d'effectuer des traitements sur des fichiers PGN. Il peut scanner chaque partie d'échecs et lire le contenu de certains commentaire afin d'en extraire les informations utiles. Ainsi, les données de temps, de profondeur et d'évaluation générées par les moteurs d'échecs peuvent être reconnues si le format utilisé n'est pas trop "exotique". PgnScanner effectue aussi un certain nombre de reconnaissances et de détections sur chaque position de la partie analysée. Lorsqu'une partie ou une position répond à l'un de ses critères de sélection, elle peut être sauvegardée dans un fichier EPD ou PGN.
PgnScanner sait calculer le classement élo des joueurs inclus dans un fichier PGN. Il peut également reconstruire tous les tournois sous forme de tables html.

PgnScanner est fourni gratuitement et "tel quel" sans garantie d'aucune sorte.

 

 

Principales fonctionnalités

  • traitement de champs-PGN d'un fichier de parties

  • sélection de parties selon des champs-PGN

  • fusion de fichiers PGN

  • création de bibliothèque d'ouvertures avec données de statistique

  • auto-analyse de bibliothèque à l'aide d'un moteur UCI externe

  • reconstruction de grille de tournoi à partir d'un fichier PGN

  • recherche de positions et de doublons

  • scan et détection de parties ou de positions répondant à certains critères

  • calcul elo automatique

  • reconstruction de grille de tournoi

  • possibilité à un moteur d'échecs d'accéder directement grace à "accbook.dll" à un répertoire d'ouverture généré par pgnscanner

  • pgnscanner est "batchable". cela permet de l'insérer dans des scripts et de lui passer plusieurs commandes internes en arguments

  • coupure de partie, déramification de variantes

 

Ensemble des critères de détection

 

PgnScanner se base sur le fichier PgnScanner.ini afin d'appliquer des critères de détection de positions ou de parties. Vous pouvez donc activer, désactiver ces critères ou modifier le type de sortie (EPD ou PGN) à l'aide de ce fichier.
Un critère de présente sous la forme de :

nomCritère : act=1 ,epd=1 ,pgn=0 ,shb=0 ,val=300 ,mnv=-50 ,mxv=200 ,moc=1 ,name=Drop of value

act = 1 : signifie que le critère de détection est activé (0 sinon).
epd = 1 : signifie que la position sera générée dans le fichier epdfound.epd en cas de détection (0 sinon)

pgn = 1 : signifie que la partie sera générée dans le fichier pgnfound.pgn en cas de détection (0 sinon)

val = n : affecte la valeur 'n' au critère

shb = 1 : affiche l'échiquier en cas de détection (0 sinon)

mnv = n1 : valeur inférieure ou minimale de la fenêtre de recherche de certains critères

mxv = n2 : valeur supérieure ou maximale de la fenêtre de recherche de certains critères

moc = x : nombre maximum d'occurrences à détecter dans la partie en cours d'analyse

name = chaine : nom du critère de détection

Ci-dessous, quelques critères expliqués. Veuillez consulter le fichier pgnscanner.ini de la dernière version pour voir les mise-à-jour :

 

ValDrop Position ayant une évaluation comprise dans l'intervalle [mnv, mxv] et qui chute brutalement d'au moins "val" points après le coup suivant. L'évaluation doit être valide et le temps utilisé supérieur à 0. L'évaluation adverse doit confirmer la chute. D'autres conditions doivent également être remplies...
ValJump Position perdante qui remonte soudainement de "val" points dans l'intervalle [mnv, mxv] . D'autres conditions doivent également être remplies...
Diamond

Position présentant un motif de pions comme par exemple : b2-a3-c3-b4 (assez rare)

Pawn1x3

Position présentant un motif de pions comme par exemple : b2-b3-b4

Pawn1x4

Position présentant un motif de pions comme par exemple : b2-b3-b4-b5 (jamais rencontré...)

Pawn2x2

Position présentant un motif de pions comme par exemple : b2-c2-b3-c3

PawnStorm

Position présentant un orage de pions c'est-à-dire au moins 3 pions passés dans le camp ennemi

CrazyKing

Position ou un roi s'aventure dangereusement vers le centre ou le camp ennemi alors qu'il reste beaucoup de pièce en jeu

ExceedingPc

Position ou un camp présente un nombre inhabituel de pièces comme par exemple : 2 dames, 3 fous, 3 tours etc...

AbnormTerm

Partie apparemment perdu au temps selon les critères de PgnScanner

DepthDrop

Chute brutale d'au moins 4 niveau de recherche selon un des moteurs. D'autres conditions doivent également être remplies...

LowDepth

Profondeur vraiment faible (<= 5 niveaux) atteinte par un des moteurs. Le temps de recherche doit être supérieur à zéro. D'autres conditions doivent également être remplies...

Confusion

Positions intéressantes où PgnScanner a détecté un haut degré de confusion. Les pièces des deux camps sont alors relativement dispersées et se trouvent souvent dans le camp ennemi ce qui donne des positions complexes à haut niveau d'attaque.

MatEvalBug

Bug d'évaluation du mat annoncé. Par exemple "55.Ng3 {+M3} Ke8 {+M3}" indique que l'un des moteurs s'est probablement trompé de signe même si théoriquement il est possible d'adopter un système de notation où le signe dépend de la couleur et non plus du moteur.
Les bugs de profondeurs sont également relevés. Par exemple "55.Bg2 {+M4} Nh4 {-M3} 56.Ra8 {+M9}" indique une erreur car l'un des moteurs annonce mat en 4 puis mat en 9 un coup plus tard ce qui est illogique.

VeryShortGame

Détection de miniatures

VeryLongGame

Détection de parties vraiment longues

SuspOpening

Parties où les deux moteurs sortent de l'ouverture avec une évaluation en dehors de la plage ]mnv;mxv[ durant au moins 4 coups pleins. Ces ouvertures doivent être considérées comme douteuses et peuvent être vérifiées par un moteur expert de façon à améliorer un répertoire d'ouverture

BestPerf

Partie où le plus faible joueur  (diff. elo < val) a réussi à gagner ou faire nulle (val + 100)

ToFewMoves

Parties dont le nombre de coups n'excède pas "val". Crash possible.

OppCastles

Parties avec roques opposés

MvWeakCastle

Coup de pion affaiblissant le roque

 

 

Liste des commandes

 

Pour obtenir des informations sur les toute dernières commandes implémentées, veuillez consulter l'aide en ligne en tapant la commande 'help'

 

anabk ... analyse le book charge et evalue (moteur externe) ou sauve les positions atteintes

board ... montre l'echiquier interne

bye ..... ferme PgnScanner

cmem .... augmente la capacite memoire des commentaires de chaque coup

cut ..... coupe les parties apres un demi-coup donne

dbl ..... detecte les doublons absolus ou par transposition

dcmbk ... supprime tous les commentaires calcules du book charge

ddepd ... supprime les positions en double d'un fichier EPD

debug ... permet de derouler une partie a l'ecran a partir d'un demi-coup donne

delete .. supprime des parties d'un fichier pgn

instxt .. insere une chaine de caracteres dans un champ PGN

elo ..... construit une liste de classement elo de tous les joueurs

fepd .... recherche des positions au format EPD

ftrn .... reconstruit l'ensembles des tournois joues

givelo .. calcule et attribue un elo. Modifie les champ PGN relatifs au elo.

lang .... regle la langue. Utile pour l'aide en ligne et l'affichage de l'echiquier

merge ... fusionne des fichiers PGN

newbk ... cree massivement une bibliotheque d'ouverture

open .... ouvre un fichier PGN

openbk .. ouvre un book PgnScanner

r/recall propose les 6 dernieres commandes differentes tapees, meme apres redemarrage

reptxt .. remplace la valeur d'un champ PGN par une autre

salut ... ferme pgnscanner

scan .... lance la detection globale selon les criteres actifs du fichier pgnscanner.ini

select .. selectionne les parties selon des criteres bases sur les champs PGN (elo, result...).

setcap .. change la casse les champs PGN ou bien celle du premier caractere de chaque mot

setcmt .. regle le format de commentaire associe a chaque coup. Permet aussi de supprimer completement les commentaires

show .... affiche une partie a l'ecran

showbk .. permet de naviguer dans le repertoire genere

split ... deramifie l'ensemble des variantes d'un PGN et les enregistre sous forme de partie.

sub ..... soustrait des parties au fichier PGN courant selon un fichier specifie en parametre

syn ..... cree une synthese de tous les tournois inclus dans le fichier PGN ouvert

tag ..... montre tous les champs PGN possibles.

verbose . regle le mode verbeux pour obtenir plus d'informations dans certains cas

 

 

Exemples de traitements courants

 

Extraire toutes les parties jouées par crusher du fichier megatournoi.pgn :

open megatournoi.pgn

select white crusher or black crusher

 

Extraire toutes les parties perdues par big looser 0.0 du fichier megatournoi.pgn

open megatournoi.pgn

select white "big looser 0.0" and result 0-1

select black "big looser 0.0" and result 1-0

 

Scanner un fichier PGN et en extraire des positions ou des parties selon les critères activés dans le fichier pgnscanner.ini

open megatournoi.pgn

scan -log

 

Fusionner l'ensemble des fichiers PGN d'un répertoire

merge c:\repertoire

 

Lancer plusieurs commandes internes à l'exécution

c:\pgnscan.exe open mygames.pgn ftrn -out=tournaments.html

 

 

Bugs

 

N'hésitez pas à me contacter si vous trouvez bugs et comportements anormaux. Toute idée d'évolution intéressante est également la bienvenue et peut éventuellement être prise en compte pour la version suivante.

bal[ AT ]transversale.fr