【问题标题】:bad operand types for binary operator compiling error二元运算符编译错误的错误操作数类型
【发布时间】:2015-07-28 19:25:43
【问题描述】:

对于我正在制作的游戏,我需要在 10x10 游戏板上放置一个类似俄罗斯方块的棋子。

如果玩家试图将棋子放在棋盘外的单元格上,我想返回“offboard”

为此,我创建了一个初始方法,如果该部分离开板,则返回 true。

x 和 y 是我使用 10 行 10 列的二维数组制作的棋盘坐标

如果棋子的任何部分超出了棋盘区域,我想打印一个字符串“offboard”。

    //Return true if the cell is offboard
    private boolean isOffBoard(int x, int y){
        if(board[x][y] < 0 || board[x][y] > 9){
            return true;
        }
        return false;
    }

但是当我尝试编译时,它给了我一个错误提示:

二元运算符'的错误操作数类型

第一种 Sqaure,第二种 int

我知道我使用的运算符和数字与板子的二维数组结构不匹配,但我真的不知道如何修复它以使其正常工作。

我真的需要帮助来修复这个错误,这样我才能继续为我的游戏的其余部分编写代码。

【问题讨论】:

  • 你为什么不直接使用if (x &lt; 0 || y &lt; 0 || x &gt; 9 || y &gt; 9)

标签: java arrays multidimensional-array compiler-errors operators


【解决方案1】:

您正在尝试将Square0(和9)进行比较。与其尝试与板的内容进行比较,不如与数组的大小进行比较。 (另外,不要使用if...return true。只需返回值。)

private boolean isOffBoard(int x, int y){
    return (x < 0 || y < 0 || x >= board.length || y >= board[x].length);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多