public bool CompareTo(VectorPoint pointToCompare) { if (this.m_x == pointToCompare.m_x && this.m_y == pointToCompare.m_y && this.m_Direction == pointToCompare.m_Direction) { return(true); } else { return(false); } }
public NotBinerySearchTree(int[,] curMaze, VectorPoint[] vectors, VectorPoint startPoint, VectorPoint endPoint) { m_Size = 0; m_Maze = curMaze; this.addNode((startPoint.m_x * 100 + startPoint.m_y) * startPoint.m_Direction, startPoint); List <VectorPoint> listVector = vectors.ToList <VectorPoint>(); endPoint.m_Direction = 5; //m_EndNode = new Node((100 * endPoint.m_x + endPoint.m_y) * endPoint.m_Direction, endPoint, 50, m_RootNode); listVector.Add(endPoint); addVectorNode(listVector); }
private Node AddVectorNode(Node curNode, VectorPoint vector) { if (m_RootNode == null) { return(new Node((vector.m_x * 100 + vector.m_y) * vector.m_Direction, vector, this.m_Size + 1, m_RootNode)); } Node addNode = new Node((vector.m_x * 100 + vector.m_y) * vector.m_Direction, vector, this.m_Size + 1, m_RootNode); if (curNode != null && addNode != null && m_RootNode != null) { bool addedVector = false; switch (curNode.getObj(2).m_Direction) { case 1: if (curNode.getObj(2).m_y - 1 == addNode.getObj(2).m_y) { Console.WriteLine("Node Added"); curNode.addChildNode(addNode); addedVector = true; return(m_RootNode); } break; case 2: if (curNode.getObj(2).m_y + 1 == addNode.getObj(2).m_y) { Console.WriteLine("Node Added"); curNode.addChildNode(addNode); addedVector = true; return(m_RootNode); } break; case 3: if (curNode.getObj(2).m_x - 1 == addNode.getObj(2).m_x) { Console.WriteLine("Node Added"); curNode.addChildNode(addNode); addedVector = true; return(m_RootNode); } break; case 4: if (curNode.getObj(2).m_x + 1 == addNode.getObj(2).m_x) { Console.WriteLine("Node Added"); curNode.addChildNode(addNode); addedVector = true; return(m_RootNode); } break; default: return(m_RootNode); } if (curNode.getChildren() != null && !addedVector) { foreach (Node nodes in curNode.getChildren()) { return(AddVectorNode(nodes, vector)); } } else { return(m_RootNode); } } else { return(m_RootNode); } return(m_RootNode); }
public void addVectorNode(VectorPoint vector) { this.m_Size = this.m_Size++; m_RootNode = AddVectorNode(m_RootNode, vector); }