Example #1
0
 public int[][] getPath(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
 {
   Object localObject = null;
   ((int[][])null);
   Vector localVector = new Vector();
   this.destinationRow = getRowPosition(paramInt4);
   this.destinationCol = getColPosition(paramInt3);
   MGE_Node localMGE_Node1 = new MGE_Node();
   localMGE_Node1.row = getRowPosition(paramInt2);
   localMGE_Node1.col = getColPosition(paramInt1);
   localMGE_Node1.g = 0;
   localMGE_Node1.h = getH(localMGE_Node1.row, localMGE_Node1.col);
   localMGE_Node1.f = (localMGE_Node1.g + localMGE_Node1.h);
   this.openNode.add(localMGE_Node1);
   while (true)
   {
     MGE_Node localMGE_Node2 = getBesetNode();
     if (localMGE_Node2 == null)
       label127: return localObject;
     if ((localMGE_Node2.row == getRowPosition(paramInt4)) && (localMGE_Node2.col == getColPosition(paramInt3)))
     {
       MGE_Node localMGE_Node3 = localMGE_Node2;
       int[][] arrayOfInt1;
       if (localMGE_Node3.parent == null)
       {
         int i = 1 + localVector.size();
         int[] arrayOfInt = new int[2];
         arrayOfInt[0] = i;
         arrayOfInt[1] = 2;
         arrayOfInt1 = (int[][])Array.newInstance(Integer.TYPE, arrayOfInt);
         arrayOfInt1[localVector.size()][0] = paramInt2;
         arrayOfInt1[localVector.size()][1] = paramInt1;
       }
       for (int j = 0; ; ++j)
       {
         if (j >= localVector.size())
         {
           localObject = arrayOfInt1;
           break label127:
           localVector.add(localMGE_Node3);
           localMGE_Node3 = localMGE_Node3.parent;
         }
         arrayOfInt1[j][0] = ((MGE_Node)localVector.elementAt(j)).row;
         arrayOfInt1[j][1] = ((MGE_Node)localVector.elementAt(j)).col;
       }
     }
     seachSeccessionNode(localMGE_Node2);
   }
 }
Example #2
0
 private void creatSeccessionNode(MGE_Node paramMGE_Node, int paramInt1, int paramInt2)
 {
   int i = 1 + paramMGE_Node.g;
   if (!isInClose(paramInt1, paramInt2))
   {
     MGE_Node localMGE_Node1 = checkOpen(paramInt1, paramInt2);
     if (localMGE_Node1 == null)
       break label67;
     if (localMGE_Node1.g < i)
     {
       localMGE_Node1.parent = paramMGE_Node;
       localMGE_Node1.g = i;
       localMGE_Node1.f = (i + localMGE_Node1.h);
     }
   }
   while (true)
   {
     return;
     label67: MGE_Node localMGE_Node2 = new MGE_Node();
     localMGE_Node2.parent = paramMGE_Node;
     localMGE_Node2.g = i;
     localMGE_Node2.h = getH(paramInt1, paramInt2);
     localMGE_Node2.f = (localMGE_Node2.g + localMGE_Node2.h);
     localMGE_Node2.row = paramInt1;
     localMGE_Node2.col = paramInt2;
     this.openNode.addElement(localMGE_Node2);
   }
 }