给一9X9 的格,和9个图。每图的四面都有不同的部分的动物,相同的动物可以匹配,如何找所有的解答?不用编写程序分析画,
已知道所有的图的信息。

解决方案 »

  1.   

     //9*9
       public   int[][] maps = new int[9][9];
       //定义一个和业务有关的HashMap ---LZ根据业务需要自己初始化
       public HashMap mapsrc = new HashMap();
       /**
        * 上下左右相同元素的合并(LZ不知道您的具体业务我的算法如下)
        * @param n 动物数目
        * @param i,j 当前坐标
        * @return
        */
       public  boolean  combination(int i ,int j ,int n){
       
       //如果和前面的一致(map中的键值代表意义LZ自己定义)
       if(mapsrc.get(maps[i][j])==mapsrc.get(maps[i-1][j])){
       //将maps[i][j]设置为key
       //修改maps[i][j]的图片或其他使其连成一片(此处逻辑LZ自己定义map中的值可以为图片路径或背景色等)
       mapsrc.put(maps[i][j],   mapsrc.get(maps[i-1][j])) ;
       return true;
       }
        //如果和后面的一致
       else if(mapsrc.get(maps[i][j])==mapsrc.get(maps[i+1][j])){
       
       mapsrc.put(maps[i][j],   mapsrc.get(maps[i+1][j])) ;
       return true;
       }
       //如果和上面的一致
       else if(mapsrc.get(maps[i][j])==mapsrc.get(maps[i][j-1])){
       
       mapsrc.put(maps[i][j],   mapsrc.get(maps[i][j-1])) ;
       return true;
       }
       //如果和下面的一致
       else if(mapsrc.get(maps[i][j])==mapsrc.get(maps[i][j+1])){
       
       mapsrc.put(maps[i][j],   mapsrc.get(maps[i][j+1])) ;
       return true;
       }
     return false;
       }    
      

  2.   

     方法更正和上同
     public  boolean  combination(int i ,int j ,HashMap mapsrc ){