不确定代码在做什么

时间:2016-02-10 16:18:36

标签: python chess

是否有人能够破译此代码并帮助解释代码如何允许骑士全面移动,这将是值得赞赏的。我真的不知道为什么这些具体的数字,所以如果你也可以解释一下,我们将不胜感激。

df[,compare := mean(tmp[pnum == ref.pat, prim] == mainprim), by = list(ref.pat, mainprim)]

1 个答案:

答案 0 :(得分:0)

这是一种标准方法,可以找到骑士在一维内部表示的棋盘上攻击的所有方格。有8个单独的案件。这是我最近写的一些perl基本上做同样的事情:

for ($i=0,$k=0; $i<$s; ++$i) {
  for ($j=0; $j<$s; ++$j,++$k) {
    my @moves;
    if ($i>1) {
      if ($j>0) { push @moves, $k-$s-$s-1 }
      if ($j<$s-1) { push @moves, $k-$s-$s+1 }
      }
    if ($j>1) {
      if ($i>0) { push @moves, $k-$s-2 }
      if ($i<$s-1) { push @moves, $k+$s-2 }
      }
    if ($i<$s-2) {
      if ($j>0) { push @moves, $k+$s+$s-1 }
      if ($j<$s-1) { push @moves, $k+$s+$s+1 }
      }
    if ($j<$s-2) {
      if ($i>0) { push @moves, $k-$s+2 }
      if ($i<$s-1) { push @moves, $k+$s+2 }
      }