コード例 #1
0
        /**
         * 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);
        }
コード例 #2
0
        /* ---------------------------------- 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);
        }