Формат файлов
PDN - переносимый формат текстовых файлов для сохранения шашечных партий. Партии в таком файле, обычно с расширением имени .pdn, хранятся последовательно, общим числом от нуля и более.
Каждая партия состоит из двух частей: метаданных и текста партии. Первая часть описывает партию в целом: турнир, имена игроков, результат и так далее. Вторая часть содержит ходы партии, записанные в полной нотации. Метаданные от текста партии отделяются пустой строкой.
Полностью одна партия в PDN-файле выглядит примерно так:
[White "Романов"] [Black "Сычев"] [Event "XII Чемпионат СССР"] [Round "4"] [Site "Киев"] [Date "1950.3.20"] [Result "2-0"] [GameType "25"] 1. a3-b4 b6-a5 2. b2-a3 a7-b6 3. e3-d4 d6-c5 4. b4xd6 e7xe3 5. d2xf4 f6-g5 6. f2-e3 g5-h4 7. g1-f2 b6-c5 8. c1-d2 d8-e7 9. c3-d4 c7-d6 10. d4xb6 a5xc7 11. e3-d4 g7-f6 12. f4-e5 d6xf4 13. g3xg7 h8xf6 14. a3-b4 e7-d6 15. a1-b2 h6-g5 16. b2-c3 f6-e5 17. d4xf6 g5xe7 18. c3-d4 c7-b6 19. f2-e3 d6-c5 20. b4xd6 e7xc5 21. d4-e5 c5-b4 22. e3-d4 b4-a3 23. d2-c3 b6-a5 24. e5-d6 a5-b4 25. c3xa5 a3-b2 26. d6-e7 f8xd6 27. d4-c5 d6xb4 28. a5xa1 2-0
В свою очередь, каждая партия отделяется от следующей также пустой строкой.
Метаданные
Метаданные партии состоят из тегов - информационных меток. Каждый тег заключается в квадратные скобки, и состоит из названия тега и его значения в двойных кавычках. Названия тегов могут состоять только из латинских букв, цифр и знака подчеркивания.
В метаданных каждой партии должны присутствовать семь обязательных тегов, их назначение строго определено, но допускаются и дополнительные теги. Все теги могут принимать пустые значения.
Программа RU64 распознает и использует только обязательные теги и два дополнительных: указание типа шашечной партии и описание начальной позиции.
- White - имя игрока, игравшего белыми. Примеры:
[White "Кукуев"] [White "Цирик З.И."]
- Black - имя игрока, игравшего черными. Примеры:
[Black "Соков В."] [Black "Плакхин А."]
- Event - название турнира. Примеры:
[Event "XII Чемпионат СССР"] [Event "Первенство ВЦСПС"]
- Round - номер тура. Примеры:
[Round "5.3"] [Round "12"]
- Site - место проведения турнира. Примеры:
[Site "Москва"] [Site "Одесса"]
- Date - дата начала партии, в формате "ГГГГ.ММ.ДД". Примеры:
[Date "1973.10.11"] [Date "1989"]
- "1-0": выиграли белые
- "2-0": выиграли белые
- "0-1": выиграли черные
- "0-2": выиграли черные
- "1/2-1/2": ничья
- "1-1": ничья
- "*": результат неизвестен
Примеры:
[Result "2-0"] [Result "1/2-1/2"] [Result "*"]
- GameType - стандартный дополнительный тег, определяющий тип шашечной партии. Для указания того, что партия относится к русским шашкам, он должен принимать одно из следующих значений:
[GameType "25"] [GameType "25,W,8,8,A0,0"]
При отсутствии тега GameType или его пустом значении программа RU64 по умолчанию будет определять тип шашечной партии как партии в русские шашки.
- FEN - стандартный дополнительный тег, определяющий начальную позицию. Он необходим для сохранения в PDN-файле фрагментов партий, а также партий, начинающихся с позиций, отличных от классической, например партий с «летающими» шашками. Примеры:
[FEN "W:W13,22,23,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,7,8,10,11,12,21"] [FEN "B:W18,19,22,23,27,32:B7,10,12,K13,20"]
Значение каждого тега FEN состоит из трех частей, разделенных двоеточиями:
- Первая часть с указанием очереди хода, символ W - ход белых, символ B - ход черных.
- Две части с описанием расположения шашек каждой стороны. Если первым символом такой части является символ W, то далее в ней описывается расположение белых шашек, если символ B, то - черных.
Описание расположения шашек состоит из перечисления через запятую цифровых координат, на которых они расположены. Координаты - это цифры от 1 до 32. Возрастание координат идет со стороны черных, от восьмой горизонтали, где b8 = 1 и h8 = 4, и так далее до первой горизонтали, где a1 = 29 и g1 = 32. Для обозначения дамки перед координатой ставится символ K.
Текст партии
Текст партии состоит из ходов, записанных в полной нотации, и возможно, их номеров, комментариев, вариантов и завершающего маркера, равного значению тега Result в метаданных этой партии.
- Взятие в тексте партии должно обозначаться символом x. А в случае неоднозначного взятия должны быть указаны все поля, через которые оно происходит. Пример фрагмента партии с неоднозначным взятием:
[White ""] [Black ""] [Event ""] [Round ""] [Site ""] [Date ""] [Result "2-0"] [GameType "25"] [FEN "W:WK26:B8,9,10,11,19"] 1. d2xh6xf8xc5xa7 f6-g5 2. a7-b8 g5-h4 3. b8-h2 h4-g3 4. h2xe5 2-0
- Дополнительные комментарии к ходам партии указываются в фигурных скобках. Пример текста партии с комментарием:
1. c3-d4 f6-g5 2. b2-c3 g7-f6 3. c3-b4 h8-g7 4. b4-c5 d6xb4 5. a3xc5 g5-h4 6. a1-b2 b6-a5 7. b2-a3 c7-b6 8. g3-f4 f6-g5 9. d2-c3 d8-c7 10. c1-b2 c7-d6 11. a3-b4 e7-f6 12. c5xe7 f6xd8 13. f4-e5 f8-e7 14. b4-c5 g7-f6 15. e5xg7 h6xf8 16. h2-g3 b8-c7 17. b2-a3 g5-f4 18. e3xg5 h4xf6 19. g3-f4 c7-d6 20. e1-d2 d6xb4 21. a3xc5 d8-c7 22. f4-e5 f8-g7 23. e5-d6 c7xe5 24. f2-g3 g7-h6 25. g1-h2 h6-g5 { Просрочка времени } 0-2
- Альтернативные варианты в тексте партии указываются в круглых скобках. Пример текста партии с вариантом:
1. g3-h4 d6-e5 2. h2-g3 e7-d6 3. e3-f4 h6-g5 4. f4xh6 e5-d4 5. c3xe5 d6xh2 6. a3-b4 f6-e5 7. b2-c3 c7-d6 8. a1-b2 b8-c7 9. d2-e3 b6-a5 10. b2-a3 c7-b6 11. c1-d2 b6-c5 12. f2-g3 h2xf4 13. e3xg5 a7-b6 ( 13... c5-d4 14. g5-f6 d4xb2 15. a3xc1 a5xc3 16. f6xb2 ) 14. g1-h2 2-0
Текст партии может отсутствовать, в этом случае вместо него должен быть представлен маркер результата партии. В сочетании с пустыми значениями тегов, такая корректная пустая партия выглядит так:
[White ""] [Black ""] [Event ""] [Round ""] [Site ""] [Date ""] [Result "*"] *
Расширение формата
Для «летающих» шашек предусмотрено расширение формата PDN-файлов. Чтобы определить начальную позицию, перед ходами партии можно указать специальные команды, описывающие перемещение шашек из классической начальной позиции на другие поля. При этом в метаданных партии не должно быть тега FEN.
Пример таких команд:
d2>h4 e7>c5 1. g3-f4 b6-a5
В этом примере сначала определяется новая начальная позиция, отличная от классической: белая шашка с поля d2 переставляется на поле h4, а затем черная шашка e7 переставляется на c5, и далее идут ходы партии.
Такие специальные команды для «летающих» шашек можно задавать только перед всеми ходами партии, по одной для каждой стороны, и если одна из команд пропускается, то она должна быть заменена символом тире ("‑").
Примерный фрагмент текста партии для такого случая:
g3>h4 - 1. e3-d4 d6-c5
Полный пример партии с «летающими» шашками и специальными командами:
[White "Плакхин А."] [Black "Асадов Д."] [Event "Чемпионат мира"] [Round ""] [Site ""] [Date "1996.10.17"] [Result "2-0"] [GameType "25"] a3>d4 g7>a5 1. g3-f4 d6-e5 2. f4xd6 e7xc5 3. d4-e5 f6xd4 4. c3xe5 d8-e7 5. h2-g3 c7-d6 6. e5xc7 b6xd8 7. b2-c3 a7-b6 8. a1-b2 c5-b4 9. e3-d4 b4-a3 10. d4-c5 b6xd4 11. c3xe5 f8-g7 12. g3-f4 g7-f6 13. e5xg7 h6xf8 14. f2-g3 b8-c7 15. b2-c3 c7-d6 16. f4-g5 h8-g7 17. g5-h6 g7-f6 18. g1-f2 d6-e5 19. f2-e3 e7-d6 20. g3-h4 d8-c7 21. e1-f2 d6-c5 22. f2-g3 c5-b4 23. g3-f4 e5xg3 24. h4xf2 f8-e7 25. e3-f4 e7-d6 26. f4-g5 f6xh4 27. h6-g7 d6-e5 28. g7-h8 e5-f4 29. d2-e3 b4xd2 30. e3xg5 h4xf6 2-0
В целях совместимости с другими игровыми программами, программа RU64 поддерживает данное расширение только при загрузке и вставке партий. При сохранении или добавлении в PDN-файл партий с «летающими» шашками будет использован стандартный тег FEN, а специальные команды вынесены в комментарий перед первым ходом.
Ссылки
Более подробную информацию о формате PDN-файлов можно узнать по ссылкам: