我正在为一项任务制作跳棋游戏。整个事情都按照它应该的方式运行,除了一件奇怪的事情。这是我的板:
我通过给出源行和列,然后是目标行和列来移动。
move(int srcR, int srcC, int destR, int destC)
如果我尝试将一块棋子移到无效位置(不是对角线),我应该打印出一个错误。因此,如果我尝试从 5 2 -> 4 2 移动一块,它会给我一条错误消息。
if(destR == srcR+1 || destR == srcR-1 &&
destC == srcC+1 || destC == srcC-1){
// code code code
}else
message = "Invalid Move! Can only move diagonally one space.";
对于大多数事情它都有效,但如果我尝试直接向下移动一个空格(例如,2 3 -> 3 3),它会移动这块而不给我错误消息。
我被困住了!任何想法为什么会发生这种情况?如果需要,我可以发布更多代码。