国际象棋Javafx,我不了解骑士动作?

问题描述 投票:-3回答:1

我在项目javafx github上找到了此代码,但我不了解马的动作...有人可以帮助我....

  return ((Math.abs(newRow - oldRow) == 2 && Math.abs(newCol - oldCol) == 1)
                || (Math.abs(newRow - oldRow) == 1 && Math.abs(newCol - oldCol) == 2));
java chess
1个回答
2
投票

[如果骑士处于下面标记为N的位置,则此条件的第一部分,Math.abs(newRow - oldRow) == 2 && Math.abs(newCol - oldCol) == 1检查目标方块是否为下面由1标记的方块,第二部分,Math.abs(newRow - oldRow) == 1 && Math.abs(newCol - oldCol) == 2检查是否目标正方形是用2标记的任何正方形。

+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   | 1 |   | 1 |   |   |   |
+---+---+---+---+---+---+---+---+
|   | 2 |   |   |   | 2 |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | N |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   | 2 |   |   |   | 2 |   |   |
+---+---+---+---+---+---+---+---+
|   |   | 1 |   | 1 |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
© www.soinside.com 2019 - 2024. All rights reserved.