PORTABLE DRAUGHTS NOTATION - A PGN FORMAT FOR CHECKERS
PDN is a new (the only?) world-wide standard to port draughts games between
computer programs and humans. It is strongly based on the succesful format for
chess games, PGN. Several programs have already adopted the standard,
including a free windows program.
As received by Adrian Millett, edited to improve readability
For my new program SAGE 4000 I have implemented a new database format called PDN -
Portable Draughts Notation - based on the Chess Portable Chess Notation.
I suggest you get the PGNSTD.DOC from caissa.onenet.net:/pub/chess/PGN/ for
a full tech spec - or I will upload it with a S4000 demo to Jon Schaeffers
WWW page at http://web.cs.ualberta.ca/~chinook
I hope this proposal will get round the mess of different formats
between programs - at the moment draughts programs cannot talk
to each other, and there is no easy way for players to EMAIL each other
games which can be readily imported into the users own program, without
tedious re-typing. In the Chess world PGN has revolutionised the
way game-info is used and published - players keep & exchange databases
with thousand of games.
Some simple samples are given below. In essence, after playing a game on
S4000 it can be annotated - either on individual moves, or in the "header"
detailing Players, Year, ELO, Result code, Event/other details -
and then exported to a PDN file - if the file already exists, the new
game is appended to the database. I can then be reloaded later - by
selecting the nth game from the database, or with more sophisticated
DB list/search functions. While playing the game, the PDN info is displayed
in the move-list window.
There are a few differences to the Chess format - moves are given in
standerd numeric notation - multijumps can either be specified
move-by-move (11x18 18x25) or in 1 go (11x25). Moves can be formatted
thus: 11-18, 11x18, 1118 - All legal possibilities. I suppose we
can support c3-e5 later too.
Move numbers end in a '.'
to differenciate from game-moves. The 4 standerd result codes
"1-0" "1/2-1/2" "0-1" "*" (game unfinished)
are given from the aspect of the 1st side to move - Black in
english draughts, White in Italian (S4000 plays DAMA ITALIANA too).
The result code MUST appear at the end of the game - this is the
game-terminator. Comments appear in {} brackets.
If a game starts from a set-up position, a FEN header is given
with the position - ie..
[SetUp "1"] [FEN "W:WK4,30:B27,22."]
The FEN format must be "SIDE_TO_MOVE:W(pieces):B(pieces)."
A K indicates a king.
As I said, get the PGNSTD doc for full info on PGN. I welcome
feedback on this issue!
To differentiate between the different types of draughts/checkers, an optional
tag pair "GameType" is added, with one of the above
values attached. Futher optional information could follow, in this format:
GameType "Type-number [,Start colour (W/B),Board width, Board height, Notation
[,Invert-flag]]"
Type-number: this is one of the following type-numbers
0: Chess
1: Chinese chess
2-19: future chess expansion
20: 10x10 draughts (international)
21: English draughts (kings only move 1 step at a time)
22: Italian draughts (as English, Men cannot take kings, must capture max)
23: American pool draughts (as 10x10, not obliged to take max)
24: Spanish pool draughts (as 10x10 rules, but men cannot capture backwards)
25: Russian draughts
26: Brazilian 8x8 draughts (same as 10x10 rules)
27: Canadian 12x12 draughts (same as 10x10 rules)
28: Portugese draughts
29-49: Future draughts expansion
50: Othello
51.. Future expansion.
Start-colour: Either W or B - white/black side starts (can vary in draughts)
Board-width: Width of board..
Board-height: Height of board..
Notation: A=alpha/numeric like chess, N=numeric like draughts.
S=SAN - short-form chess notation.
Then follows a number 0-4 telling where square A1 or 1 is for
the side who starts the game (White or black)
0= Bottom left, 1=Bottom right, 2=Top left, 3=Top right..
Invert-flag: 0 = play on dark squares (like english & 10x10), 1 = play on light
squares (like italian draughts) This is only needed in draughts.
Here are some examples..
[GameType "0"] {Straight chess}
[GameType "0,W,8,8,0,S0"] {Straight chess, with full spec}
[GameType "20"] {10x10 draughts)
[GameType "20,W,10,10,N2,0"] {10x10 draughts, with full spec)
[GameType "21"] {English draughts}
[GameType "21,B,8,8,N1,0"] {English draughts, with full spec}
[GameType "21,B,10,10,N1,0"] {English draughts, played on a 10x10 board}
[GameType "22"] {Italian draughts}
[GameType "22,W,8,8,N2,1"] {Italian draughts, with full spec}
SAMPLE PDN FORMAT FILE - TEST.PDN
[Event "Double Corner Dyke"]
[Black "Jordan,A"]
[White "Tesheliet,F"]
[Result "1/2-1/2"]
[GameType "21"]
1. 9-14 22-17 2. 11-15 25-22 3. 15-19 {Forms the Double Corner Dyke, With
black aiming to occupy sqr 19, attacking white's double corner.} 23x16
4. 12x19 24x15 5. 10x19 17x10 6. 6x15 21-17 7. 5-9 29-25 8. 8-12 25-21
9. 7-10 17-13 10. 1-6 {It seems unwise to abondon the key back row sqr 1,
but it is necessary to prevent 13-9..} 27-24 11. 4-8 32-27 12. 9-14
27-23 13. 3-7 23x16 14. 12x19 22-17 15. 7-11 26-23 16. 19x26 30x23
17. 8-12 24-20 18. 15-18 23-19 19. 11-15 20-16 20. 15x24 28x19 21. 2-7
31-26 22. 18-23 26-22 23. 23-27 16-11 {! a really beautiful escape}
24. 7x23 22-18 1/2-1/2
[Event "Demo Game"]
[Black "Seton,J"]
[White "Wyllie,J"]
[Result "1-0"]
[GameType "21"]
1. 11-15 24-20 2. 8-11 28-24 3. 4-8 23-19 4. 15-18 22x15 5. 11x18 32-28
6. 10-14 26-23 7. 9-13 19-15 8. 7-11 31-26 9. 2-7 26-22 10. 13-17 22x13
11. 6-9 13x6 12. 1x26 30x23 13. 11-15 25-22 14. 18x25 29x22 15. 7-10
23-19 16. 5-9 22-17 17. 9-13 20-16 18. 13x22 16-11 19. 22-26 11x4
20. 26-31 4-8 21. 3-7 8-3 22. 31-26 19-16 23. 12x19 27-23 24. 26-22
23x16 25. 22-18 3-8 {For the benifit of spectators, Wyllie plays out the
nice end shot - can you see it?} 26. 7-11 16x7 27. 15-19 24x6 28. 14-17
21x14 29. 18x4 28-24 30. 4-8 24-19 31. 8-11 19-15 32. 11x18 1-0
[Event "Andersons 1st position trunk"]
[Result "1-0"]
[SetUp "1"]
[FEN "W:WK4,30:B27,22."]
[GameType "21"]
1. 4-8 27-32 2. 8-11 32-27 3. 11-7 27-23 {etc to Black win..} 1-0
[White "T. Sijbrands"]
[Black "Goeljaew"]
[Date "1969.5.29"]
[GameType "20"]
[Result "1/2-1/2"]
1. 32-28 17-21 2. 33-29 21-26 3. 39-33 11-17 4. 37-32 26x37
5. 42x31 6-11 6. 44-39 19-23 7. 28x19 14x23 8. 35-30 13-19
9. 30-25 19-24 10. 25x14 9x20 11. 50-44 10-14 12. 47-42 14-19
13. 41-37 4-9 14. 46-41 8-13 15. 32-28 23x32 16. 37x28 18-23
17. 29x18 12x32 18. 38x27 17-21 19. 42-37 21x32 20. 37x28 7-12
21. 41-37 2-8 22. 37-32 13-18 23. 43-38 9-13 24. 48-42 11-17
25. 31-26 17-21 26. 26x17 12x21 27. 49-43 8-12 28. 42-37 18-23
29. 34-29 23x34 30. 40x29 20-25 31. 29x20 15x24 32. 36-31 21-26
33. 44-40 5-10 34. 39-34 12-18 35. 34-29 10-15 36. 29x20 15x24
37. 43-39 3-8 38. 39-34 16-21 39. 34-29 21-27 40. 29x20 25x14
41. 31x22 18x27 42. 32x21 26x17 43. 40-34 14-20 44. 45-40 1-7
1/2-1/2
More examples can be found here
All feedback on this idea welcome!
---------------------------------------------------------------------
DRAUGHTS MAGAZINE/NEWLETTER WRITERS - CAN YOU PUBLISH THE ABOVE?
Please also forward to other interested parties..
--
PC SOLUTIONS - PO BOX 954, BOURNEMOUTH BH7 6YJ, ENGLAND
EMAIL 100646.3501@compuserve.com