Z.Z*_*don 0 c++ algorithm chess
我正在用C++做一个国际象棋项目.我正在尝试检查2D阵列中的有效骑士移动.
我有玩家this->getLocX(),this->getLocY()
变量的旧位置(玩家所在的位置)和我有x,y
(这是玩家想要将他的骑士移入的地方).
如何以最佳方式检查有效性?这是我的解决方案,但我想知道是否有更好的方法.
if (x == this->getLocX() + 1 && y == this->getLocY() + 2 || x == this->getLocX() - 1 && y == this->getLocY() + 2 || y == this->getLocY() + 1 && x == this->getLocX() + 2 || y == this->getLocY() + 1 && x == this->getLocX() - 2 || x == this->getLocX() - 1 && y == this->getLocY() + 2 || x == this->getLocX() + 1 && y == this->getLocY() - 2 || y == this->getLocY() - 1 && x == this->getLocX() - 2 || y == this->getLocY() - 1 && x == this->getLocX() + 2 || x == this->getLocX() - 1 && y == this->getLocY() - 2)
{
//Move is vaid
}
Run Code Online (Sandbox Code Playgroud)