БлогNot. PGN2PNG или Портрет шахматной партии в одной картинке

PGN2PNG или Портрет шахматной партии в одной картинке

Взгляните на портрет "Бессмертной" шахматной партии

"Бессмертная", портрет партии
"Бессмертная", портрет партии

, сгенерированный по этому поганцу файлу формата PGN:

[Event "London"] 
[Date "1851.06.21"] 
[Result "1-0"] 
[White "Adolf Anderssen"] 
[Black "Lionel Adalbert Bagration Felix Kieseritsky"] 
[ECO "C33"] 

1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 b5 5.Bxb5 Nf6 
6.Nf3 Qh6 7.d3 Nh5 8.Nh4 Qg5 9.Nf5 c6 10.g4 Nf6 
11.Rg1 cxb5 12.h4 Qg6 13.h5 Qg5 14.Qf3 Ng8 15.Bxf4 Qf6 
16.Nc3 Bc5 17.Nd5 Qxb2 18.Bd6 Bxg1 
{It is from this move that Black's defeat stems. 
Wilhelm Steinitz suggested in 1879 that a better move 
would be 18... Qxa1+; likely moves to follow are 
19. Ke2 Qb2 20. Kd2 Bxg1.} 
19. e5 Qxa1+ 20. Ke2 Na6 21.Nxg7+ Kd8 22.Qf6+ Nxf6 23.Be7# 1-0 

Интересная картинка, только называть её "кодом" не хочется, лучше пусть будет портретом, что подчёркивает статичность слепка (порядок ходов показан лишь небольшим потемнением красных линий для более поздних передвижений).

Логика построения довольно очевидна, чем чернее поле, тем оно утоптанней, то есть, тем большую часть ходов на нём находились фигура или пешка. Соответственно, чем толще линия между центрами двух полей, тем больше было переходов между ними, в "Бессмертной" конь действительно трижды ходил с g8 на f6 и обратно (5-м, 14-м и 22-м ходами чёрных).

После единственного хода 1. e4 картинка будет куда проще:

1. e4, портрет партии
1. e4, портрет партии

Основной код скрипта взят отсюда , только переписан script.js и убрана серверная сторона для генерации картинки. Соответственно, скрипт может работать и локально по протоколу file://, то есть, при запуске файла index.html из скачанного архива.

Скрипт также выводит в левой колонке позиции FEN после каждого хода, что компенсирует недоступность онлайн-версии исходного скрипта :)

Превратить FEN в картинку, думаю, потом не проблема.

Вот этот 125-ходовый "шедевр" даст, конечно, наиболее "продвинутую" картинку.

1. e4 e5 2. Nf3 d5 3. d3 dxe4 4. dxe4 Qxd1+ 5. Kxd1 Nc6 
6. c3 Nf6 7. Bd3 Bg4 8. Be3 h6 9. Nd2 Rc8 10. Kc2 b6 
11. Bb5 Bd7 12. Nc4 Nxe4 13. Rh1f1 Nb4+ 14. Kb3 Bxb5 15. Nf3xe5 Nd5 
16. Rf1d1 c6 17. a4 Bxc4+ 18. Nxc4 Rc7 19. Rd4 Nd6 20. Nxd6+ Bxd6 
21. Re4+ Re7 22. Rxe7+ Nxe7 23. g3 Bc5 24. Bxc5 bxc5 25. Rd1 O-O 
26. Rd7 Rb8+ 27. Kc2 Nc8 28. Rc7 c4 29. Rxc6 Nb6 30. a5 Na4 
31. Rxc4 Rxb2+ 32. Kd3 Ra2 33. Ke3 Nb2 34. Rc5 Nd1+ 35. Kf3 Rxf2+ 
36. Kg4 Rc2 37. c4 Ne3+ 38. Kf4 Rxc4+ 39. Rxc4 Nxc4 40. a6 g6 
41. Ke4 Kg7 42. Kd4 Na3 43. Kc5 Nc2 44. Kc6 Na3 45. Kb7 Nb5 
46. Kc6 Nc3 47. Kb7 Nb5 48. Kc6 Nd4+ 49. Kb7 Nf3 50. Kxa7 f5 
51. Kb7 Nxh2 52. a7 Nf1 53. a8=Q Nxg3 54. Qa1+ Kf7 55. Qc3 Ne4 
56. Qc4+ Kf6 57. Kc7 h5 58. Qc6+ Kg7 59. Kd7 h4 60. Ke6 Ng5+ 
61. Ke7 h3 62. Qf6+ Kh6 63. Qh8+ Nh7 64. Qc3 f4 65. Qxh3+ Kg7 
66. Qc3+ Kh6 67. Qh3+ Kg7 68. Qg4 Nf6 69. Qg5 Nh5 70. Ke6 Kh7 
71. Qe7+ Kh6 72. Qf8+ Kg5 73. Qc5+ Kh4 74. Qc4 Kg5 75. Kf7 Ng3 
76. Qd5+ Kh4 77. Kxg6 Kg4 78. Qg5+ Kf3 79. Qd5+ Kf2 80. Qd2+ Kf3 
81. Qe1 Ne2 82. Kh5 Ng3+ 83. Kh4 Nf5+ 84. Kh3 Ne3 85. Qh1+ Ke2 
86. Qh2+ Kf3 87. Kh4 Nf5+ 88. Kg5 Ng3 89. Qc2 Ne4+ 90. Kf5 Ng3+ 
91. Ke5 Kg4 92. Qg6+ Kf3 93. Qd3+ Kg4 94. Qd1+ Kg5 95. Qf3 Nh5 
96. Kd4 Nf6 97. Qg2+ Kf5 98. Kd3 Ke6 99. Ke2 Nd5 100. Qe4+ Kd6 
101. Kf3 Kc6 102. Qc4+ Kd6 103. Ke4 Nb6 104. Qb4+ Kc6 105. Ke5 f3 
106. Qe4+ Kc5 107. Qxf3 Nc4+ 108. Ke6 Kd4 109. Qd5+ Kc3 110. Kf6 Nd2 
111. Kf5 Nb1 112. Qe4 Kb2 113. Qd3 Ka1 114. Ke4 Kb2 115. Kd4 Na3 
116. Qc3+ Ka2 117. Kd3 Nb1 118. Qc2+ Ka1 119. Ke2 Na3 120. Qb3 Nb1 
121. Kd3 Nc3 122. Qxc3+ Ka2 123. Qb4 Ka1 124. Kc2 Ka2 125. Qa4+  1-0

бредовенькая партия из 125 ходов, портрет
бредовенькая партия из 125 ходов, портрет

 Выполнить скрипт PGN2PNG онлайн, новое окно/вкладка

 Скачать архив .zip со скриптом pgn2png, папка уже создана внутри архива (50 Кб)

10.11.2021, 10:13 [870 просмотров]


теги: шахматы javascript картинка графика маразм

К этой статье пока нет комментариев, Ваш будет первым