【发布时间】:2016-08-16 09:41:13
【问题描述】:
我了解abs(srcX-dstX) == abs(srcY-dstY) 是对主教棋子运动模式的正确验证。
但我想知道我的验证是否也正确,这里是:srcX-srcY == dstX-dstY || srcX+srcY == dstX+dstY
如果您的回答是否定的,请说明原因。
【问题讨论】:
标签: algorithm validation chess
我了解abs(srcX-dstX) == abs(srcY-dstY) 是对主教棋子运动模式的正确验证。
但我想知道我的验证是否也正确,这里是:srcX-srcY == dstX-dstY || srcX+srcY == dstX+dstY
如果您的回答是否定的,请说明原因。
【问题讨论】:
标签: algorithm validation chess
是的,它是正确的。基本的method 是取原始方程并去除绝对值,然后做同样的事情,但在一侧乘以-1,所以
Given: abs(srcX-dstX) == abs(srcY-dstY)
srcX-dstX == srcY-dstY OR srcX-dstX == -srcY+dstY
这可以重新排列,看起来像你的。
【讨论】:
abs(x) =
x if x >= 0
-x if x < 0
因此,您的验证应该是:
srcX-dstX == srcY-dstY || -srcX+dstX == srcY-dstY
编辑:修正公式
【讨论】: