Esempio n. 1
0
 private void TracePath(Node start, Node end)
 {
     List<Node> path = new List<Node>();
     Node current = end;
     while (current.GridBlock.Equals(start.GridBlock))
     {
         path.Add(current);
         current = current.Parent;
     }
     path.Reverse();
     grid.Path = path;
 }
Esempio n. 2
0
 public void Create()
 {
     int posX = 0;
     int posY = 0;
     gridNodes = new Node[gridSizeX, gridSizeY];
     for (int i = 0; i < gridSizeX; i++)
     {
         for (int j = 0; j < gridSizeY; j++)
         {
             GridBlock block = new GridBlock(new Point(posX, posY), GridBlock.BlockType.Way);
             if (i == 0 && j == 0)
                 block.Type = GridBlock.BlockType.Start;
             else if (j == 14 && i == 14)
                 block.Type = GridBlock.BlockType.End;
             gridNodes[i, j] = new Node(i, j, block);
             posX += 20;
         }
         posX = 0;
         posY += 20;
     }
     this.start = gridNodes[0, 0];
     this.end = gridNodes[14, 14];
 }
Esempio n. 3
0
 private int GetDistance(Node a, Node b)
 {
     int distX = Math.Abs(a.GridBlock.Position.X - b.GridBlock.Position.X);
     int distY = Math.Abs(a.GridBlock.Position.Y - b.GridBlock.Position.Y);
     return distX + distY;
 }
Esempio n. 4
0
 public List<Node> GetNeighbours(Node start)
 {
     List<Node> neighbours = new List<Node>();
     return neighbours;
 }