Ejemplo n.º 1
0
 public Node(int x, int y, Geometry.Sides redSidePos, Node parent, Geometry.Directions initMove)
 {
     X          = x;
     Y          = y;
     RedSidePos = redSidePos;
     Parent     = parent;
     InitMove   = initMove;
 }
Ejemplo n.º 2
0
        private bool IsConnected(Node firstNode, Geometry.Directions moveDirection)
        {
            byte[] bt1 = new byte[1];
            byte[] bt2 = new byte[1];

            bt1[0] = Convert.ToByte(mapData[firstNode.X][firstNode.Y] - 'A');
            bt2[0] = Convert.ToByte(mapData[cube.X][cube.Y] - 'A');

            BitArray bitArray1 = new BitArray(bt1);
            BitArray bitArray2 = new BitArray(bt2);

            switch (moveDirection)
            {
            case Directions.West:
            {
                if (bitArray1[3] == true && bitArray2[1] == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            case Directions.North:
            {
                if (bitArray1[2] == true && bitArray2[0] == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            case Directions.East:
            {
                if (bitArray1[1] == true && bitArray2[3] == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            case Directions.South:
            {
                if (bitArray1[0] == true && bitArray2[2] == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            default: return(false);
            }
        }