在大师级游戏中,多久会出现一次响声?


22

我可以知道如何在所有大师级游戏中找到以下各项的百分比吗?

  • 金边cast
  • 皇后区cast
  • 在比赛结束前从未防御过,但仍然有权防御
  • 失去了城堡的权利

注意当一侧在一场比赛中出入不止一次时,只有第一个城堡才算在内。


2
所谓“所有大师游戏”,是指您拥有的某个数据库中的所有此类游戏?
user1583209

您需要白色和黑色吗?(白色王后小
皮面包的

@ user1583209,我心中没有任何数据库。如果该百分比可分别用于白色和黑色,则将是首选。
Zuriel

没有游戏者可以在游戏中玩两次城堡,因为先将国王cast堡,然后将其移回可以再次城堡的位置,至少需要一个国王移动,这使他不再有资格再次城堡。
user45266

3
@ user45266这是非法举动,但根据OP的链接,某些历史游戏确实包含当时没人抓到的非法举动。
杰弗里·布伦特

Answers:


27

如果您准备使用标准的Linux命令行工具(如)wcgrep然后我认为我的免费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年4月),并且在删除了损坏的游戏和重复项后获得了以下统计信息:

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%。


1
非常感谢你的分享!!我相信您的代码效果很好(除非一侧城堡不止一次,这仍然是非法的)。
Zuriel

7
大!真正在国际象棋SE上挖掘针对统计问题的基于脚本的答案的新趋势,就像您在这里或最近在此那样。
user929304

因此,为澄清起见,“ Kingside”将所有其中一个或两个玩家都占据了国王边的那些游戏计算在内。在一个类别中,一个城堡位于国王边而另一个城堡位于女王侧的游戏将被算在这两个类别中。也许更有趣的统计数据是(或)占据国王或皇后的游戏比例。
Nate Eldredge,

1
我不认为这会严重影响百分比,但是偶尔会发生0-0 +和0-0-0 +的情况。
Rosie F

1
另外,为什么不分别查找白色和黑色的百分比呢?只是一个主意!
Rewan Demontay

10

仅仅搜索“统计数据”就已经产生了一些结果。即使分析是针对与“所有大师级游戏”不同的一组游戏进行的,也给出了一个粗略的指示。

王翼易位是由玩家80-81%完成,王后侧易位的8-9%。我估计游戏结束前永不城堡,但仍然具有城堡权利可以忽略不计(少于0.1%,因为它需要很短的游戏时间)。因此,最后一组剩下约11%的人失去了城堡权


1
第一个链接很棒!!我以前从未见过像国际象棋这样有趣的统计数据。
Zuriel

1
如今,这种情况已经不那么普遍了,但是从历史上看,有很多比赛中两位大师级球员会打一些标准的开局动作并同意平局,例如,因为他们的比赛结果不会影响比赛的排名。这些游戏中的许多游戏可能都以至少一名玩家仍然有权保留的位置结束。第二个链接中不同层深度的频率图包含35,000多个游戏(〜2%),在20层或更少的层数之后结束,几乎所有这些都将被同意平局,可能至少有一位玩家具有划定的权利。
David Richerby,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.