/** * This Function Over On The Childrens , And Neighbors Nodes Of Current Node. **/ public List <Node> Neighbors_Function(Node Current, List <Node> List_Of_Nodes) { Point Center_Point_Of_Node = Current.Get_Centre_Node(); List <Node> Neighbors_Nodes = new List <Node>(); foreach (Node Specific_Node in List_Of_Nodes) { if (((Center_Point_Of_Node.X - Sqaure_Size) == Specific_Node.Get_Centre_Node().X) && (Center_Point_Of_Node.Y == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if ((Center_Point_Of_Node.X == Specific_Node.Get_Centre_Node().X) && ((Center_Point_Of_Node.Y - Sqaure_Size) == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if ((Center_Point_Of_Node.X == Specific_Node.Get_Centre_Node().X) && ((Center_Point_Of_Node.Y + Sqaure_Size) == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if (((Center_Point_Of_Node.X + Sqaure_Size) == Specific_Node.Get_Centre_Node().X) && (Center_Point_Of_Node.Y == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } } /* Remain Only The Sibilngs That With Gray / Gold Color */ foreach (Node Specific_Neighbor in Neighbors_Nodes.ToList()) { if (Specific_Neighbor.Get_Color().CompareTo("Black") == 0) { Neighbors_Nodes.Remove(Specific_Neighbor); } } /* Set Property Of Number Of Neighbors */ Current.Set_Number_Of_Neighbors(Neighbors_Nodes.Count); return(Neighbors_Nodes); }
/* ---------------------------------- Not In Used --------------------------------------- */ /** * This Function Check The Number Of Neighbors. **/ public int Check_Number_Of_Neighbors(Node Local_Node, List <Node> List_Of_Nodes) { Point Center_Point_Of_Node = Local_Node.Get_Centre_Node(); List <Node> Neighbors_Nodes = new List <Node>(); foreach (Node Specific_Node in List_Of_Nodes) { if (((Center_Point_Of_Node.X - Sqaure_Size) == Specific_Node.Get_Centre_Node().X) && (Center_Point_Of_Node.Y == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if ((Center_Point_Of_Node.X == Specific_Node.Get_Centre_Node().X) && ((Center_Point_Of_Node.Y - Sqaure_Size) == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if ((Center_Point_Of_Node.X == Specific_Node.Get_Centre_Node().X) && ((Center_Point_Of_Node.Y + Sqaure_Size) == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } else if (((Center_Point_Of_Node.X + Sqaure_Size) == Specific_Node.Get_Centre_Node().X) && (Center_Point_Of_Node.Y == Specific_Node.Get_Centre_Node().Y)) { Neighbors_Nodes.Add(Specific_Node); } } /* Remain Only The Sibilngs That With Gray / Gold Color */ foreach (Node Specific_Neighbor in Neighbors_Nodes.ToList()) { if (Specific_Neighbor.Get_Color().CompareTo("Black") == 0) { Neighbors_Nodes.Remove(Specific_Neighbor); } } /* Return The Number Of The Node's */ return(Neighbors_Nodes.Count); }