This help will explain how to use the program step by step, with many functionalities along with some examples.
A translation of PHP+C into javascript would be needed for practical server side usage, so this will not be explained here.

First of all: follow the initialization step 0) as described in README.txt.

A sample example (Linares 2001) is present in the main directory; you can have a look at it as a "-1 step".
Ces pages d'aide détaillent les étapes d'utilisation du programme, avec des exemples illustrant ses fonctionalités.
Une réécriture du PHP+C en javascript serait nécessaire pour l'utilisation sur un serveur. C'est pourquoi je n'en parle pas ici.

Avant toute chose: suivez l'étape d'initialisation 0) décrite dans le fichier README.txt.

Un exemple de fichier HTML (Linares 2001) est dans le répertoire principal ; vous pouvez le regarder en guise d'"étape -1".
  1. The PGN format
    1. Header
    2. Comments and variations
    3. Moves nags
    4. Continuation and null moves
  2. HTML pre-styling: the file viewer_config.php
  3. Generate the HTML file
  4. HTML post-styling
    1. Around chessboard
    2. Around game moves
    3. Other styles
  5. Using the HTML file: browse and kibitz
  1. Le format PGN
    1. En-tête
    2. Commentaires et variantes
    3. Nags associés aux coups
    4. Continuations et null moves
  2. Pré-mise en forme du HTML : le fichier viewer_config.php
  3. Génération du fichier HTML
  4. Retouches de style
    1. Autour de l'échiquier
    2. Sur la liste des coups
    3. Autres styles
  5. Utilisation du fichier HTML : navigation et kibitz

The PGN format

Here are briefly described the particularities of dynachess regarding PGN files.

Header

Header should have at least the following form:

[Event "event_name"]
[Site "site_name"]
[Date "date"]
[Round "round_number"]
[White "white_name"]
[Black "black_name"]
[Result "result"]

where all fields can be filled as you wish, except Result which is 1-0, 0-1, 1/2-1/2 or * for unfinished game.
Warning: if you want a crosstable, the players name must not change from one game to another
(otherwise, e.g., "Polgar, J.", "Polgar, Ju" and "Polgar, Judith" would match three different players...).

Optional fields which will get printed:

[ECO "XYY"]
[WhiteElo "XXXX"]
[BlackElo "XXXX"]
[Annotator "annotator(s)_name(s)"]

Any other header field will be ignored.

Comments and variations

You can place comments anywhere in the game moves, as well as (nested) variations. A short example will speak better than 10 lines about it:

1.e4 e5 2.Nf3 (2.Nc3 {is another option} 2... Nf6 3.f4 d5 (3... exf4 {would be a mistake, because of} 4.e5 Ng8)) 2...Nc6 *

The alternative markers '[' and ']' are supported too for variations, but are not standard.
Warning: no more than 14 nested variations (15 including main line).
Remember: the last move is always taken back when entering a variation.

Moves nags

You can also add judgements about moves or game state (called nags) in two different ways. If it can be typed, like '!', '?', 'N', '+', '#'..., then it is a possible way to go. If the nag cannot be typed, like "forced move", "space advantage"..., then you have only one option: write $XXX where XXX is the nag number. All nags will be displayed using specific font, unless you explicitely asked for not using it (in viewer_config.php). Here is a short example, illustrating basic nags usage:

1.e4 e5 2.Nf3 (2.Nc3!? {is another option} 2... Nf6 $5 3.f4 d5 $1 (3... exf4? {would be a mistake, because of} 4.e5 Ng8)) 2...Nc6 $11 *

There are many more nags available ; for the standard ones from 1 to 139, see e.g. the Exeter Chess Club page about PGN nags.

Additional supported nags in dynachess go from 140 to 255 (see nags_arrays.php), based on this wikipedia page and the Palview4 manual ; the "usual" nags from 1 to 139 are also reminded.

NumberDescriptionPrinting
1good move!
2bad move?
3excellent move!!
4big mistake??
5interesting move!?
6questionable move?!
7forced moveô
8singular move
9worst move
10 to 12with equality=
13unclear position˜
14slight white advantage
15slight black advantage
16moderate white advantage±
17moderate black advantageµ
18decisive white advantage+-
19decisive black advantage-+
20crushing white advantage++-
21crushing black advantage--+
22 & 23zugzwangá
24 to 29space advantageÜ
30 to 35development advantageâ
36 to 39with initiativeÉ
40 & 41with attackÇ
42 & 43insufficient compensation
44white has enough compensation
45black has enough compensation©
46 & 47more than sufficient compensation
48 to 53central control advantageî
54 to 59advantage on kingsideª
60 to 65advantage on queenside´
66 to 69about rank protection
70 to 77about king protection
78 to 85about pawn structure
86 to 101about pieces placements
102 to 105about pieces coordination
106 to 113judgements about the opening
114 to 121judgements about the middlegame
122 to 129judgements about the ending
130 to 135with counterplayÑ
136 to 139time pressureì
NumberDescriptionPrinting
140with the idea ofÖ
141aiming againstå
142a better move isπ
143weaker isã
144better isõ
145editorial noterr
146noveltyn
147various movesr
148endgame reachedˇ
149controlling rankë
150controlling diagonalí
151 & 152bishop pair advantage
153opposite color bishopsÆ
154same color bishopsØ
155 & 156united pawnsÌ
157 & 158separated pawnsÔ
159 & 160doubled pawns
161 & 162weak move<
163 & 164strong move>
165 to 237unused
238space advantageÜ
239controlling fileñ
240controlling diagonalí
241center
242advantage on kingsideª
243advantage on queenside´
244weak pointx
245endgame reachedˇ
246bishop pair advantage
247opposite color bishopsÆ
248same color bishopsØ
249connected pawnsÌ
250isolated pawnsÔ
251doubled pawns
252passed pawn˛
253pawns majority
254with
255without
(If you cannot see the symbols, this means you have not installed the font yet. You will find it in the directory printings/fonts/). Nags 241,254 and 255 have no printing, not even textual, because they are too fuzzy to me. If you can clarify them, please tell me and I will add their symbols/text.

Note: the zugzwang nags $22 and $23 will always print like this, but if you type 'Z' right after a move, it will juste print 'Z'.
Finally, note that two consecutive nags are possible:

1.e4 e5 (1...e5 2.Nf3 $1 $140 {3.Nxe5}) *

Continuation and null moves

Variations allow you to show other game scenarios, but the last move has to be taken back every time. This may not be adequate to some situations, for example when a surprise effect is needed. Continuations allow to play a first move in a variation which follow the last one (instead of being a takeback of it). The marker "(*" (or "[*") indicates the beginning of a continuation. Consider the following example, in which 3... c6 has to be guessed by the reader:

1.e4 d5 2.exd5 Nf6 3.c4 {what to play now ? d5 is safe, so a gambit is needed:} (* 3... c6! 4.dxc6 (4.d4!) Nxc6 5.Nf3 e5 $15) {however, the game continued with} 3...g6 *

A null move is simply a "passing move", which allow the opponent to play twice. Null moves are most often used to show a few consecutive moves played by the same side, possibly preceded by the nag "with the idea of" ($140). The notation "--" or "<>" indicate such a passing move, as in the following example:

1.e4 e6 2.d4 d5 3.e5 c5 (* -- $140 4... cxd4 5.Qxd4 Nc6) {, winning a tempo and weakening white center} 4.c3 {now an possible setup for whites is} (* -- 5.Nf3 -- 6.Bd3 -- 7.0-0 -- 8.Ng5) {with a future attack on the kingside} *

Rules: a null move Note: the continuations, null moves and brackets "[,]" are non standard symbols. Consequently, a warning will be printed below the link to PGN games on the HTML file.

Le format PGN

Les particularités de dynachess relatives au format PGN sont expliquées rapidement ici.

En-tête

L'en-tête devrait toujours (au moins) avoir la forme minimale suivante :

[Event "nom_event"]
[Site "nom_site"]
[Date "date"]
[Round "numero_ronde"]
[White "nom_blancs"]
[Black "nom_noirs"]
[Result "résultat"]

où tous les champs peuvent être remplis à votre convenance, excepté Result qui doit être 1-0, 0-1, 1/2-1/2 ou * signalant une partie inachevée.
Attention: si une grille de tournoi est générée, les noms des joueurs ne doivent pas changer d'une partie à l'autre
(dans le cas contraire, par exemple, "Polgar, J.", "Polgar, Ju" et "Polgar, Judith" seraient prises pour trois joueuses différentes...).

Champs optionnel qui seront affichés:

[ECO "XYY"]
[WhiteElo "XXXX"]
[BlackElo "XXXX"]
[Annotator "nom(s)_commentateur(s)"]

Tous les autres lignes de l'en-tête seront ignorées.

Commentaires et variantes

Des commentaires ainsi que des variantes (éventuellement imbriquées) peuvent être placées partout dans la partie. Un court exemple sera plus parlant qu'un long paragraphe:

1.e4 e5 2.Nf3 (2.Nc3 {is another option} 2... Nf6 3.f4 d5 (3... exf4 {would be a mistake, because of} 4.e5 Ng8)) 2...Nc6 *

Les charactères alternatifs '[' et ']' sont également supportés pour les variantes, mais ne sont pas standards.
Attention: pas plus de 14 niveaux de variantes (15 en incluant la ligne principale).
À retenir: le dernier coup de la ligne précédente est toujours repris avant d'entrer dans une variante.

Nags sur les coups

Des jugements sur les coups joués ainsi que sur l'état de la partie peuvent être insérés dans le PGN de deux manières différentes. S'ils peuvent être tapés au clavier, comme '!', '?', 'N', '+', '#'..., alors vous pouvez simplement les taper ainsi. En revanche si le nag ne peut être entré au clavier, comme "coup forcé", "avantage d'espace"..., alors il ne reste qu'une option: écrire $XXX où XXX est le numéro du nag. Tous les nags seront affichés en utilisant une fonte spécifique, à moins que vous n'activiez pas l'option correspondante dans sources/src_PHP/viewer_config.php. Voici maintenant un court exemple illustrant l'utilisation basique des nags:

1.e4 e5 2.Nf3 (2.Nc3!? {est une autre possibilité} 2... Nf6 $5 3.f4 d5 $1 (3... exf4? {serait une erreur, à cause de} 4.e5 Ng8)) 2...Nc6 $11 *

Beaucoup de nags peuvent être utilisés ; ils sont standardisés de 1 à 139 (voir par exemple la page de l'Exeter Chess Club à ce sujet).

Plusieurs logiciels supportent d'autres nags, de 140 à 255 ; ils ne sont toutefois pas standards, donc susceptibles de varier d'un programme à l'autre. Voici ceux utilisés dans dynachess, basés sur cette page wikipedia et sur le manuel de Palview4. Les nags "usuels" de 1 à 139 sont également rappelés.

NuméroDescriptionAffichage
1bon coup!
2mauvais coup?
3excellent coup!!
4grosse erreur??
5coup intéressant!?
6coup douteux?!
7coup forcéô
8coup singulier
9le pire coup
10 à 12avec égalité=
13position peu claire˜
14léger avantage blanc
15léger avantage noir
16avantage blanc modéré±
17avantage noir modéréµ
18avantage blanc décisif+-
19avantage noir décisif-+
20avantage blanc écrasant++-
21avantage noir écrasant--+
22 & 23zugzwangá
24 à 29avantage d'espaceÜ
30 à 35avantage de développementâ
36 à 39avec l'initiativeÉ
40 & 41avec une attaqueÇ
42 & 43compensations insuffisantes
44les blancs ont assez de compensations
45les noirs ont assez de compensations©
46 & 47compensations plus que suffisantes
48 à 53contrôle du centreî
54 à 59avantage sur l'aile roiª
60 à 65avantage sur l'aile dame´
66 à 69protection sur une rangée
70 à 77protection du roi
78 à 85structure de pions
86 à 101placement des pièces
102 à 105coordination des pièces
106 à 113jugements sur l'ouverture
114 à 121jugements sur le milieu de partie
122 à 129jugements sur la finale
130 à 135avec contre-jeuÑ
136 à 139pression du tempsì
NuméroDescriptionAffichage
140dans l'intention deÖ
141dirigé contreå
142un meilleur coup estπ
143plus faible estã
144meilleur estõ
145note de l'éditeurrr
146nouveautén
147coups multiplesr
148entrée en finaleˇ
149contrôle d'une rangéeë
150contrôle d'une diagonaleí
151 & 152avantage paire de fous
153fous de couleurs opposésÆ
154fous de même couleurØ
155 & 156pions connectéesÌ
157 & 158pions déconnectésÔ
159 & 160pions doublés
161 & 162coup faible<
163 & 164fort coup>
165 à 237inutilisés
238avantage d'espaceÜ
239contrôle d'une colonneñ
240contrôle d'une diagonaleí
241centre
242avantage sur l'aile roiª
243avantage sur l'aile dame´
244point faiblex
245entrée en finaleˇ
246avantage paire de fous
247fous de couleurs opposésÆ
248fous de même couleurØ
249pions connectéesÌ
250pions isolésÔ
251pions doublés
252pion passé˛
253majorité de pions
254avec
255sans
(Si vous ne voyez pas les symboles, cela signifie que la police n'est pas installée. Vous la trouverez dans le sous-répertoire printings/fonts/). Les nags 241,254 et 255 n'ont pas de symboles, ni même de texte équivalent, car ils me paraissent vraiment trop flous. Si vous en savez plus à leur sujet, merci de me l'indiquer et j'ajouterai leur symbole/texte.

Note: les nags de zugzwang $22 and $23 will always print like this, but if you type 'Z' right after a move, it will juste print 'Z'.
Enfin, notez que deux nags peuvent éventuellement se suivre :

1.e4 e5 (1...e5 2.Nf3 $1 $140 {3.Nxe5}) *

Continuations et null moves

Les variantes permettent d'explorer d'autr'es scénarios de jeu, mais le dernier coup doit toujours être repris. Cela peut ne pas être adéquat dans certaines situations, par exemple lorsqu'un effet de surprise est souhaité. Les continuations permettent d'enchaîner directement sur le coup suivant, sans reprendre le dernier coup. Celles-ci sont repérées par les symboles "(*" (ou "[*") en début de variante. Jetez un oeil à l'exemple suivant, dans lequel 3... c6 doit être deviné par le lecteur :

1.e4 d5 2.exd5 Nf6 3.c4 {que jouer à présent ? d5 est défendu, un gambit s'impose donc :} (* 3... c6! 4.dxc6 (4.d4!) Nxc6 5.Nf3 e5 $15) {cependant, la partie continua par} 3...g6 *

Un "null move" équivaut simplement à passer son tour, permettant à l'adversaire de jouer deux fois. Les null moves sont souvent utilisés pour montrer une suite de coups joué par le même camp, éventuellement précédés du nag "dans l'intention de" ($140). Ils sont indiqués par la notation "--" ou "<>", comme on le voit dans l'exemple suivant :

1.e4 e6 2.d4 d5 3.e5 c5 (* -- $140 4... cxd4 5.Qxd4 Nc6) {, gagnant un temps et affaiblissant le centre blanc} 4.c3 {les blancs ont à présent en tête} (* -- 5.Nf3 -- 6.Bd3 -- 7.0-0 -- 8.Ng5) {avec une attaque à venir sur l'aile roi} *

Règles: un null move Note: les continuations, null moves et crochets "[,]" ne sont pas des symboles standards. En conséquence, un avertissement sera affiché en dessous du lien vers les parties PGN dans le fichier HTML.

HTML pre-styling: the file viewer_config.php

If now the PGN file is ready, there is only one more step to accomplish before generating the HTML file. All you have to do is to open the file sources/src_PHP/viewer_config.php in your favorite text editor, and - if needed - modify the default options (in blue in the following listing). Here are these options:

The following group contain the options which can be passed to the server using '?' and '&' in the address bar (as soon as the server version will be available).
All the following options end by an underscore '_' to distinguish from the group above. They can only be set through the file viewer_config.php.
Note: all boolean values (from crosstab_ to jswarn_) can alternatively be set to TRUE or FALSE; any integer value different from 0 will stand for TRUE.
Warning: if you selected a pieces size different than 30, 40 or 50 OR a piece style different than "merida", you must have the PHP GD library installed and the "wrenable_" option above activated.

Pré-mise en forme du HTML : le fichier viewer_config.php

Supposant à présent le fichier PGN prêt, il ne reste qu'une étape avant la génération de la version HTML. Il vous suffit d'ouvrir le fichier sources/src_PHP/viewer_config.php dans votre éditeur favori, et - si nécessaire - modifier les valeurs par défaut (en bleu dans l'énumération ci-dessous). Voici les options possibles :

Les paramètres du groupe suivant pourront être passés au seveur via '?' et '&' dans la barre d'adresse dès que la version serveur sera sortie.
Toutes les options suivantes se terminent par un underscore '_' pour les distinguer des précédentes. Elles ne peuvent être passées que via le fichier viewer_config.php.
Note: toutes les valeurs booléennes (de crosstab_ à jswarn_) peuvent également être initialisées par TRUE ou FALSE ; n'importe quelle valeur entière différente de 0 signifie TRUE.
Attention: si vous sélectionnez une taille de pièces différente de 30, 40 ou 50 OU un style de pièces différent de "merida", vous devez disposer de la librairire PHP GD et avoir activé l'option "wrenable_" ci-dessus.

Generate the HTML file

Once you completed the two last steps, this one is very easy: open a terminal, and locate the main directory containing this manual in command line.

Now type "./viewer.sh" (without quotes) followed by the optional arguments "[PGN_file_name] [HTML_file_name]" (see README.txt). The generated HTML file appear in the main directory, and is ready to be used. But maybe you want to change a few things on the page...

Génération du fichier HTML

Une fois les deux étapes précédentes complétées, celle-ci est très simple : ouvrez un terminal, et placez vous dans le répertoire principal où se trouve ce manuel en ligne de commande.

Tapez à présent "./viewer.sh" (sans les guillemets), suivi des arguments optionnels "[nom_fichier_PGN] [nom_fichier_HTML]" (voir README.txt). Le fichier HTML généré apparaît alors dans le répertoire principal, et est prêt à l'emploi. Cependant vous pourriez avoir envie d'effectuer quelques changements sur la page...

HTML post-styling

I assume now that you have the HTML file generated. The focus will be on its beginning (header, with "style" mark and javascript variables), and on the file sources/dcstyles.css. You can find many colors in hexadecimal (RGB) on this website for example.

Around chessboard

In the HTML file:

If you don't like the purple color for highlighting initial squares in case of kibitzing, change the value in the 84th line which should look like this:
var bgsqcol = "#6600FF"; // color of highlighted initial square when kibitzing
In sources/dcstyles.css:

If you don't like, e.g., the red color of the moves below the board, look for the following specification:
.lastmove {
     /* style of last move played, printed under the board */
     font-weight: bold;
     color: #990000;
}
and change it to your taste.

Around game moves

In the HTML file:

If you don't like the color used for variations, edit accordingly the 18th line which should be:
color: #0000A0;
If you don't like the red color of the moves highlighted in the list, change the value in the 58th line which should look like this:
var lmovecol = "#990000"; // color of outlined move
In sources/dcstyles.css:

The most interesting fields to set are the followings:

table.gameinfos td.plys
.elo
table.gameinfos td.date
table.gameinfos td.eco
.roev
.site
.anno
.moves
.comms

which correspond respectively to the styles of the players' names, their elo, the date of the game, the ECO code, the half-line "round and event" just below the date, the site where the event took place, and the annotator informations. The two last specifications set the moves style in the main line, and the comments style. For most of them, changing color should be sufficient. You can also modify the display above the moves if you don't like it.

Other styles

Many things like font size, weight,... paddings, margins,... can be changed, but I will not detail all the possible changes there. See the three mentioned files if you want to make subtle changes like this. In particular, if you want to change the crosstable style (colors...), look at the last paragraph of sources/dcstyles.css.

Retouches de style

Je suppose à présent que vous venez de générer le fichier HTML. Vous devrez éventuellement modifier quelques détails de son en-tête, ainsi que les spécifications de styles dans sources/dcstyles.css. Beaucoup de couleurs en hexadécimal (RGB) sont indiquées sur ce site par exemple.

Autour de l'échiquier

Dans le fichier HTML:

Si vous n'aimez pas la couleur mauve mettant en valeur la case de départ en mode kibitz, changer la valeur à la 84eme ligne qui devrait se présenter ainsi :
var bgsqcol = "#6600FF"; // color of highlighted initial square when kibitzing
Dans sources/dcstyles.css:

Si, par exemple, vous n'aimez pas la couleur rouge des coups sous l'échiquier, recherchez le style suivant :
.lastmove {
     /* style of last move played, printed under the board */
     font-weight: bold;
     color: #990000;
}
et changez le à votre convenance.

Sur la liste des coups

Dans le fichier HTML :

Si vous n'aimez pas la couleur utilisée pour les variantes, éditez en conséquence la 18eme ligne qui devrait être :
color: #0000A0;
Si vous n'aimez pas la couleur rouge de mise en valeur des coups dans la liste, changer la valeur à la 58eme ligne qui devrait se présenter ainsi :
var lmovecol = "#990000"; // color of outlined move
Dans sources/dcstyles.css:

Les champs les plus intéressants sont les suivants :

table.gameinfos td.plys
.elo
table.gameinfos td.date
table.gameinfos td.eco
.roev
.site
.anno
.moves
.comms

Ils correspondent respectivement au style des noms des joueurs, leur elo, la date de la partie, le code ECO, la demi-ligne "ronde et événement" juste sous la date, le lieu où la partie s'est déroulée, et les informations sur le(s) commentateur(s). Les deux dernières spécifications concernent les coups de la liste principale ainsi que les commentaires. Pour la plupart, un changement de couleur devrait être suffisant. Vous pouvez aussi modifier l'agencement des éléments au dessus des coups si vous n'aimez pas celui par défaut.

Autres styles

Beaucoup d'autres choses peuvent être changées, comme la taille des polices, leurs styles,... les marges intérieures (paddings), extérieures (margins),... ; je ne détaille cependant pas tous les changements possibles ici. Voyez les deux fichiers concernés si des changements un peu subtils s'imposent. En particulier, si vous désirez changer le style de la grille de résultats (couleurs...), allez au dernier paragraphe de sources/dcstyles.css.

Using the HTML file: browse and kibitz

Well, browsing into the game is very intuitive: if "dive into variations" is not activated (triangle button) the arrows will move along the main line, and otherwise you will be able to move "linearly" through the (nested) variations. The button with two vertical arrows flip the chessboard, and the one with a black circle launch autoplay mode (which can be stopped only by pressing the button again).

Note: there is a keyboard equivalent for each of the possible action (except "go to a specific move", which is only triggered by a click in the moves list); here is the correspondance: Finally, kibitzing is possible at any stage (only with clicks, drag and drop is for later). Kibitz mode is too permissive, because you can put kings into check, play several moves in a row with the same color... However, it check basic moves validity (for example, no castling allowed if there is something between king and rook). To exit the kibitz mode, simply move forward in the game, or click a move to go to a specific location, or start autoplay.

Note: you can move back into the kibitzed variations, but not move forward (to allow a simple method to exit kibitz in case of simplified control panel).

Utilisation du fichier HTML : navigation et kibitz

La navigation dans une partie est très intuitive : si le bouton "entrer dans les variantes" (triangle) n'est pas activé les flèches provoqueront des déplacements suivant la ligne principale, et dans le cas contraire vous naviguerez "linéairement" dans les variantes (imbriquées). Le bouton avec deux flèches verticales permet de tourner l'échiquier, et celui avec un cercle noir lance le mode autoplay (qui ne peut être stoppé qu'en rappuyant sur ce bouton).

Note: il y a un équivalent clavier pour chaque action possible (excepté "aller à un coup précis", qui n'est déclenchées que par un click dans la liste des coups) ; voici les correspondances : Enfin, vous pouvez déplacer les pièces à n'importe quel stade de la partie (seulement par clicks, le drag'n drop est pour plus tard). Le mode kibitz est trop permissif, car vous pouvez laisser le roi en échec, jouer plusieurs coups d'affilée avec la même couleur... Une vérification basique de validité des coups est cependant effectuée (par exemple, pas de roque s'il y a quelque chose entre le roi et la tour). Pour sortir du mode kibitz, avancez simplement dans la partie, ou cliquez sur un coup pour aller à un endroit précis, ou encore lancer le mode autoplay.

Note: vous pouvez revenir en arrière dans les variantes kibitzées, mais pas les rejouer (pour laisser une méthode simple de sortie du mode avec le panneau de contrôle simplifié).