Java ASCII 迷宫

标签 java matrix

我有一个用 java 编写的工作 ascii 迷宫解算器,使用 char 数组,它将正确路径的每个位置设置为前一个位置 + 1。我使用以下代码来从中获取正确路径,但是它仅适用于垂直运动。任何有关此事的帮助将不胜感激。

    int x, y;
    int max = Math.max((int)maze[maze.length-1][maze.length-2], 
                       (int)maze[maze.length-2][maze.length-1]);
    if(maze[maze.length-1][maze.length-2] == max)
    {
        x = maze.length-1;
        y = maze.length-2;
    }
    else
    {
        x = maze.length-2;
        y = maze.length-1;
    }
    for(int cur=0;cur<ans;cur++)
    {
        try
        {
            correct[x][y] = '*';
            if(maze[x-1][y] == maze[x][y]-1)
                x = x - 1;
            else if(maze[x+1][y] == maze[x][y]-1)
                x = x + 1;
            else if(maze[x][y-1] == maze[x][y]-1)
                y = y - 1;
            else if(maze[x][y+1] == maze[x][y]-1)
                y = y + 1;
        }catch(Throwable e){}
    }

最佳答案

很抱歉,如果回答您自己的问题不受欢迎,但感谢@HovercraftFullOfEels,我通过以下修改解决了我自己的问题:

for(int cnt = 0; cnt < numSteps; cnt++)
{
    correct[x][y] = '*';
    if(x-1 >= 0 && maze[x-1][y] == maze[x][y]-1)
        x--;
    else if(x+1 < maze.length && maze[x+1][y] == maze[x][y]-1)
        x++;
    else if(y-1 >= 0 && maze[x][y-1] == maze[x][y]-1)
        y--;
    else if(y+1 < maze.length && maze[x][y+1] == maze[x][y]-1)
        y++;
}

关于Java ASCII 迷宫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40077822/

相关文章:

处理回调消息的 Java 实现

java - Apereo CAS 5.3.x : how to get logged user, 来自 CAS 服务器,在 java cas 客户端登录后

r - 提取矩阵的每第 N 个元素

python - 如何有效地计算 numpy 数组中每个单元格的函数?

r - 矩阵中的行顺序,不包括 R 中的零值

python - 如何将 pandas 数据框转换为矩阵?

java - CheckComboBox(ControlsFX) 设置为只读 [JavaFX]

java - AssertJ:使用 String.format 生成的消息测试异常

python - 从数组值动态填充 numpy 矩阵?

java - 从 Spring Boot 应用程序的服务层中的请求获取 header