zoukankan      html  css  js  c++  java
  • 老鼠走迷宫

    理论:

    解法(回溯法);

    老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前
    进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是
    递回的基本题。

    java实现:

    package 经典;
    
    public class 老鼠走迷官1 {
        
        
        public 老鼠走迷官1() {
            // TODO 自动生成的构造函数存根
        }
        
        static int maze[][] =     //2表示围墙
            {
            {2, 2, 2, 2, 2, 2, 2}, 
            {2, 0, 0, 0, 0, 0, 2}, 
            {2, 0, 2, 0, 2, 0, 2}, 
            {2, 0, 0, 0, 0, 2, 2}, 
            {2, 2, 0, 2, 0, 2, 2}, 
            {2, 0, 2, 0, 0, 0, 2}, 
            {2, 2, 2, 2, 2, 2, 2}
            };
        
        static int success=0;
        
        static int startI = 1, startJ = 1;
        static int endI = 5, endJ = 5;
        
        public static int visit(int i,int j){
            
            maze[i][j]=1;
            
            if(i==endI&&j==endJ)
                success=1;
            
            if(success!=1&&maze[i][j+1]==0) visit(i,j+1);  //向下
            if(success!=1&&maze[i+1][j]==0) visit(i+1,j);  //向右
            if(success!=1&&maze[i][j-1]==0) visit(i,j-1);  //向左
            if(success!=1&&maze[i-1][j]==0) visit(i-1,j);  //向上
            
            if(success!=1)
                maze[i][j]=0;
            
            return success;
            
        }
        public static void main(String[] args) {
            
            System.out.println("显示迷宫");
            
            for(int i=0 ;i<7; i++)
            {
                for(int j=0; j<7; j++)
                {
                    System.out.print(maze[i][j]+",");
                }
                System.out.println();
                
            }
            
            System.out.println();
            
            if(visit(startI,startJ)==1){
                for(int i=0 ;i<7; i++)
                {
                    for(int j=0; j<7; j++)
                    {
                        System.out.print(maze[i][j]+",");
                    }
                    System.out.println();    
                }
                
            }
            
        }
        
    
    
    }
  • 相关阅读:
    Git标签
    Git管理修改和撤销修改
    Git删除文件
    Git解决冲突
    Git的stash功能
    Git管理分支
    Git的多人协作模式
    Git相关指令
    LC7 整数翻转 + LC9 回文数
    LC1 两数之和
  • 原文地址:https://www.cnblogs.com/huangcongcong/p/4006769.html
Copyright © 2011-2022 走看看