首页 文章

二进制运算符编译错误的坏操作数类型

提问于
浏览
0

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

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

为此,我已经制作了一个初始方法,如果该片段为offfboard,则返回true .

x和y是我使用带有10行和10列的2d数组制作的电路板的坐标

如果作品的任何部分超出游戏板区域,我想打印一个字母“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

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

我真的需要帮助解决这个错误,所以我可以继续编码剩下的游戏 .

1 回答

  • 2

    您正在尝试将 Square0 (和 9 )进行比较 . 而不是试图与董事会进行比较's contents, compare to the size of the array. (Additionally, don' t使用 if...return true . 只需返回值 . )

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

相关问题