Вот варианты проверки достоверности, проверки горизонтального и вертикального расстояния:
bool isValidKnight2(int getLocX,int getLocY, int x,int y)
{
int dx = abs(getLocX - x);
int dy = abs(getLocY - y);
return (dx == 1 && dy==2 || dx == 2 && dy==1);
}
А здесь один проверяет горизонтальное и вертикальное перемещение против набора допустимых возможностей:
bool isValidKnight3(int getLocX,int getLocY, int x,int y)
{
static set<pair<int,int>> valid={{1,2},{2,1}};
return (valid.find(make_pair(abs(getLocX - x), abs(getLocY - y)))!=valid.end());
}
Онлайн демо