Beispiel #1
0
        public List <Utilities.ValidStep> getAllValidSteps(char i_shape)
        {
            Utilities.ValidStep curretnValidStep;
            Utilities.Point     currentPoint;
            string stringShape = i_shape.ToString();

            List <Utilities.ValidStep> AllValidSteps = new List <Utilities.ValidStep>();

            for (int j = 0; j < m_HeightAndWidth; ++j)
            {
                for (int i = 0; i < m_HeightAndWidth; ++i)
                {
                    if (isAValidPoint(i, j, stringShape))
                    {
                        currentPoint     = new Utilities.Point(i, j);
                        curretnValidStep = new Utilities.ValidStep(currentPoint);

                        checkAllDirectionsOfPoint(curretnValidStep, currentPoint, stringShape);
                        AllValidSteps.Add(curretnValidStep);
                    }
                }
            }

            return(AllValidSteps);
        }
Beispiel #2
0
        private bool isStepIsValid(List <Utilities.ValidStep> i_validSteps, Utilities.Point i_pointToCheck)
        {
            int sizeOfList = i_validSteps.Count;

            Utilities.ValidStep[] CloneValidSteps = new Utilities.ValidStep[sizeOfList];
            i_validSteps.CopyTo((CloneValidSteps));

            foreach (Utilities.ValidStep currentStepToCheck in CloneValidSteps)
            {
                if (!(currentStepToCheck.GetPoint().X() == i_pointToCheck.X() && currentStepToCheck.GetPoint().Y() == i_pointToCheck.Y()))
                {
                    i_validSteps.Remove(currentStepToCheck);
                }
            }

            return(i_validSteps.Count > 0);
        }
Beispiel #3
0
        private void checkAllDirectionsOfPoint(Utilities.ValidStep i_validStep, Utilities.Point i_currentPoint, string i_stringShape)
        {
            if (checkContinueOfSequence(i_currentPoint, (int)Direction.LEFT, (int)Direction.NoChange, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.LEFT, (int)Direction.NoChange));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.LEFT, (int)Direction.UP, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.LEFT, (int)Direction.UP));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.NoChange, (int)Direction.UP, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.NoChange, (int)Direction.UP));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.RIGHT, (int)Direction.UP, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.RIGHT, (int)Direction.UP));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.RIGHT, (int)Direction.NoChange, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.RIGHT, (int)Direction.NoChange));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.RIGHT, (int)Direction.DOWN, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.RIGHT, (int)Direction.DOWN));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.NoChange, (int)Direction.DOWN, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.NoChange, (int)Direction.DOWN));
            }

            if (checkContinueOfSequence(i_currentPoint, (int)Direction.LEFT, (int)Direction.DOWN, i_stringShape))
            {
                i_validStep.AddDirection(new Utilities.Point((int)Direction.LEFT, (int)Direction.DOWN));
            }
        }
Beispiel #4
0
 public void updateBoard(Utilities.ValidStep i_pointToChange, string i_shape)
 {
     updateBoardByDirections(i_pointToChange.GetPoint().X(), i_pointToChange.GetPoint().Y(), i_pointToChange.GetList(), i_shape);
 }