Как часто встречается рокировка в играх гроссмейстера?

22

Могу ли я узнать, как найти во всех играх гроссмейстера, каков процент каждого из следующих?

  • Королевская рокировка
  • Квинсайд Рокинг
  • К концу игры никогда не был замкнут, но все еще имеет право на замок
  • Потерял право на замок

Примечание. Когда одна сторона зашла более одного раза в игре , учитывается только первый замок.

Zuriel
источник
2
Под «всеми гроссмейстерскими играми» вы подразумеваете все такие игры в определенной базе данных, которая у вас есть?
user1583209
Вам нужно это отдельно для белого и черного? (Процент белой королевской рокировки и т. Д.?)
user1583209
@ user1583209, у меня нет определенной базы данных в моей голове. Если процент доступен отдельно для белого и черного, он будет предпочтительным.
Зуриэль
Никто из игроков не может играть в замке дважды в игре, так как рокировка, а затем перемещение короля обратно в положение, из которого он мог бы снова замкнуть, требует по крайней мере одного хода короля, что лишает его права когда-либо снова рокировать.
user45266
3
@ user45266 Это незаконный ход, но по ссылке OP некоторые исторические игры содержат нелегальные ходы, которые никто не поймал в то время.
Джеффри Брент

Ответы:

27

Если вы готовы использовать стандартные инструменты командной строки Linux, такие как, wcи grepтогда я думаю, что мой бесплатный процессор PGN, pgn-extract , выполнит большую часть предварительной обработки, необходимой для подсчета игр в каждой категории. Ниже приведен базовый скрипт bash, который я собрал в качестве доказательства концепции. Предполагается, что ваш файл игр называется inputfile.pgn- настройте его по необходимости или передайте в качестве аргумента командной строки:

#!/bin/bash
# Output stats on castling.
src=inputfile.pgn
# Pre-process the games to allow textual analysis.
pgn-extract -C -V -N --notags --nochecks --linelength 10000 -s -o stripped.pgn ${src}
# Castling by white: detect a preceding move number.
grep '\. O-O ' stripped.pgn > Wkingside.pgn
grep '\. O-O-O ' stripped.pgn > Wqueenside.pgn
# Castling by black: detect no preceding move number.
grep '[^.] O-O ' stripped.pgn > Bkingside.pgn
grep '[^.] O-O-O ' stripped.pgn > Bqueenside.pgn
# Find games in which no castling occurred.
grep -v ' O-O ' stripped.pgn | grep -v ' O-O-O ' | grep -v '^$' > nocastle.pgn

# Output the FEN of the final position to include castling rights and
# look for the presence of rights.
pgn-extract -C -V -N --notags --nomovenumbers --linelength 10000 -s nocastle.pgn --dropply -1 -F | grep ' [wb] [KkQq]' > rights.txt

# Output the results - assumes valid Result tags in the source.
echo 'Number of games: ' `grep '^\[Result ' ${src} | wc -l`
echo 'W Kingside: ' `cat Wkingside.pgn | wc -l`
echo 'W Queenside: ' `cat Wqueenside.pgn | wc -l`
echo 'B Kingside: ' `cat Bkingside.pgn | wc -l`
echo 'B Queenside: ' `cat Bqueenside.pgn | wc -l`
echo 'Neither: ' `cat nocastle.pgn | wc -l`
echo 'Rights retained: ' `cat rights.txt | wc -l`

Я попробовал скрипт в базе данных KingBase (апрель 2019) и после удаления битых игр и дубликатов получил следующую статистику:

Number of games:  2072354
W Kingside:  1633762
W Queenside:  246158
B Kingside:  1670870
B Queenside:  128124
Neither:  69776
Rights retained:  24280

Показатель «ни того, ни другого» составляет около 3,4%, а «сохраненных прав» - около 1,2%. Если удаляются игры с 20 или менее слоями, то показатель «ни» уменьшается примерно до 2,9%, а «сохраненных прав» - около 0,7%.

kentdjb
источник
1
Большое спасибо, что поделились!! Я полагаю, что ваш код работает отлично (если только одна сторона не блокирует более одного раза, что в любом случае запрещено).
Зуриэль
7
Большой! На самом деле выкапываете эту новую тенденцию основанных на сценариях ответов на вопросы статистики здесь, на шахматном SE, как ваш здесь или этот недавно .
user929304
Таким образом, чтобы уточнить, «Кингсайд» считает все те игры, в которых один или оба игрока ходили на королевский фланг. Игры, в которых один игрок ходил на королевском фланге, а другой - на королевском, будут засчитаны в обе категории. Возможно, более интересной статистикой была бы доля игр, в которых белые (или, соответственно, черные ) бросали ворота на королевском или королевском фланге.
Нейт Элдридж
1
Я не думаю, что это сильно повлияет на проценты, но иногда случались 0-0 + и 0-0-0 +.
Рози Ф
1
Кроме того, почему бы не найти проценты для белых и черных также отдельно? Просто идея!
Rewan Demontay
10

Просто поиск в Google для «статистики рокировки» уже дает несколько результатов; даже если анализ проводится в другом наборе игр, нежели «все игры гроссмейстера», он дает приблизительное представление.

Рокировка на королевском фланге выполняется 80-81% игроков, а на ферзя на 8-9%. По моим оценкам, Никогда не разыгрывается до конца игры, но все еще имеет право на замок , ничтожно мало (менее 0,1%, так как требует очень короткой игры). Так что у финальной группы осталось около 11% потерянных прав на замок .

Глорфиндель
источник
1
Первая ссылка отличная !! Я никогда раньше не видел такой интересной статистики по шахматам.
Зуриэль
1
В наши дни это менее распространено, но исторически было много игр, в которых два гроссмейстера играли несколько стандартных начальных ходов и соглашались на ничью, например, потому что результат их игры не повлиял на турнирную таблицу. Вероятно, многие из этих игр заканчивались тем, что хотя бы один из игроков все еще имел право на замок. Частотный график для разных глубин сгиба во второй ссылке содержит более 35 000 игр (~ 2%), которые закончились после 20 сгибов или менее, и почти все из них будут согласованы вничью, вероятно, по крайней мере один игрок имеет права рокировки.
Дэвид Ричерби