我正在做一个跳棋游戏。除了一件奇怪的事情,整个事情都按照应有的方式运转。这是我的板子:

我先给出源行和列,然后给出目标行和列。

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/

10-09 04:48