gpt4 book ai didi

java - 国际象棋主教的实现规则

转载 作者:行者123 更新时间:2023-12-04 21:28:46 27 4
gpt4 key购买 nike

我试图想出一种方法来有效和巧妙地确定是否正在与象棋的象棋进行有效的移动。

片段将从 srcX,srcY 移动到 dstX,dstY

这是我的一个想法的一部分:

    if(srcX < dstX && srcY < dstY) {
// Moving towards the top right of the board
// Determine the decrease in X coordinate
int deltaX = dstX-srcX;

// If the move is valid, the Y coordinate will have decreased by the same number as X
int validY = dstY-deltaX;

if(validY == srcY) {
validMove = true;
}

}

但这会有点啰嗦,永远在角落里这样做..有人能想出更好的方法吗?

最佳答案

我会把它分成两个步骤。

1) 它是一个有效的目的地吗?
2) 是否有障碍物?

第一个很容易计算。由于象只能移动对角线,因此 deltaX 和 deltaY 必须相等。

所以,if( abs(srcX-dstX) == abs(srcY-dstY) )
这排除了逻辑上无效的 Action 。

然后就像您检查障碍物一样,遍历中间的位置是一件简单的事情。

关于java - 国际象棋主教的实现规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com