是否有人能够破译此代码并帮助解释代码如何允许骑士全面移动,这将是值得赞赏的。我真的不知道为什么这些具体的数字,所以如果你也可以解释一下,我们将不胜感激。
df[,compare := mean(tmp[pnum == ref.pat, prim] == mainprim), by = list(ref.pat, mainprim)]
答案 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 }
}