<p>如果你想用Python来评价国际象棋的位置,我可以帮你一点忙。我也做过。<br/>
你可以为每件作品准备一张好的位置表(见<a href="https://www.kaggle.com/ironicninja/visualizing-chess-game-length-and-piece-movement" rel="nofollow noreferrer">theis page</a>)。
您可以为每个工件创建货物位置列表,从a1、b1。。。以h8结尾。<br/>
e、 g.对于白人国王:</p>
<pre><code>K = [0.269, 0.883, 1.907, 9.062, 3.559, 6.985, 2.233, 0.495,
0.435, 1.236, 3.644, 9.126, 11.745, 8.228, 2.583, 0.0737,
0.553, 1.564, 2.329, 3.557, 3.772, 3.142, 2.056, 0.774,
0.505, 0.877, 1.233, 1.369, 1.456, 1.432, 1.118, 0.592,
0.370, 0.672, 0.712, 0.686, 0.763, 0.748, 0.728, 0.399,
0.246, 0.418, 0.481, 0.440, 0.395, 0.440, 0.398, 0.288,
0.164, 0.263, 0.262, 0.200, 0.190, 0.215, 0.259, 0.167,
0.066, 0.106, 0.080, 0.086, 0.076, 0.082, 0.088, 0.056]
</code></pre>
<p>注:对于黑色零件,值必须为负数,以便进行良好的分析。<br/>
<br/>
接下来,您可以创建一个dict,将每个片段字符串符号引用到其相应的商品位置列表:</p>
<pre><code>pieces = {'K': K, 'k': k, 'Q': Q, 'q': q, 'R': R, 'r': r, 'N': N, 'n': n, 'B': B, 'b': b, 'P': P, 'p': p}
</code></pre>
<p>现在,您可以对位置进行评级评估(仅针对放置,不针对其他参数,但如果您联系我,我可以帮助您对国际象棋中的其他位置进行评级。我将您的问题理解为“我想对棋盘上的每个棋子放置进行评级”):</p>
<pre><code>def placement_eval(pos) :
'''evaluation of piece placement'''
evalu = 0
for case in list(chess.SQUARES) :
piece = pos.piece_at(case)
if piece != None :
evalu = evalu + pieces[piece.symbol()][case]
return evalu / 10 # /10 or /100, as you want
</code></pre>