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();    
                }
                
            }
            
        }
        
    
    
    }
  • 相关阅读:
    linux下Github 同步与下载
    Add 'GB18030' to gedit in Linux
    JGibbLDA的输出文件
    Gibbs LDA java实现
    Polylingual LDA
    Hash_Map 原理
    Map sorted by Value
    使用loadrunnersocket压力测试
    一次压力测试
    linux不知道文件在哪,想查找文件内的字符串
  • 原文地址:https://www.cnblogs.com/huangcongcong/p/4006769.html
Copyright © 2011-2022 走看看