首页 > 解决方案 > 检查我是否在迷宫中越界

问题描述

我现在有一个 4x4 的 2D 数组,我已经有一个方法来检查是否有墙,现在我正在尝试编写检查玩家是否超出迷宫范围的方法。基本上我需要的是一个布尔方法,它只检查玩家可能的新位置是否会超出二维数组的范围。这是我到目前为止所拥有的,我知道它不起作用,因为我试图将字符串与整数运算符进行比较。我需要一些东西,将可能的新位置的实际索引与二维数组的长度进行比较,如果超出范围则返回 true,如果玩家可以移动到那里则返回 false。

//check to see if youre going out of bounds
    public Boolean isOutOfBounds(int x, int y, String d){
        if(d.equalsIgnoreCase("N")){

            y--;
            if(maze[x][y] > maze.length){
                //output "cannot go this way" from text class
            }
        }
    }

参数是玩家的原始位置和他们试图去的方向

标签: java

解决方案


你需要这样的东西:

public Boolean isOutOfBounds(int x, int y, String d){
    if(d.equalsIgnoreCase("N")){
        y--;
    }
    if(d.equalsIgnoreCase("S")){
        y++;
    }
    if(d.equalsIgnoreCase("E")){
        x--;
    }
    if(d.equalsIgnoreCase("W")){
        x++;
    }
    return ! (x >= 0 && x < maze.length &&  y >= 0 && y < maze.length);
}

推荐阅读