我正在做一个跳棋游戏。除了一件奇怪的事情,整个事情都按照应有的方式运转。这是我的板子:
我先给出源行和列,然后给出目标行和列。
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),那是在移动该块,而没有给我错误消息。
我被卡住了!任何想法为什么会发生这种情况?如果需要,我可以发布更多代码。
最佳答案
根据您的逻辑,如果
destC == srcC-1
是正确的,整个表达式将是正确的。您必须注意Java评估 boolean 运算的顺序〜必要时添加()〜
关于java - 跳棋游戏: Not Error Checking Correctly?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18061650/