国际象棋主教运动模式验证

Chess Bishop movement pattern validation

我理解 abs(srcX-dstX) == abs(srcY-dstY) 是对主教棋子运动模式的正确验证。

但是我想知道我的验证是否也正确,这里是:
srcX-srcY == dstX-dstY || srcX+srcY == dstX+dstY

如果您的回答是否定的,请说明原因。

abs(x) =
    x if x >= 0
   -x if x < 0

因此,您的验证应该是:

  srcX-dstX == srcY-dstY ||  -srcX+dstX == srcY-dstY

编辑:更正公式

是的,它是正确的。基本的 method 是取原方程并去除绝对值,然后做同样的事情,但在一侧乘以 -1 所以

Given: abs(srcX-dstX) == abs(srcY-dstY)
srcX-dstX == srcY-dstY OR srcX-dstX == -srcY+dstY

这可以重新排列成你的样子。