示例#1
0
        public override bool Validate(BoardLettersModel boardModel, string prefix, int r, int c, object directionData)
        {
            //Get Intersecting word
            var       data               = (RightDownSubstituteDirectionStrategy.DirectionData)directionData;
            Direction wordDirection      = data.WordDirection;
            Direction intersectDirection = new Direction(wordDirection.ColOffset, wordDirection.RowOffset);
            var       word               = boardModel.ReadWord(r, c, intersectDirection);

            //return true if no intersection with another word.
            if (word.Length <= 1)
            {
                return(true);
            }

            //Validate intersecting word
            return(wordList.Find(word, wholeWord: true));
        }
示例#2
0
        private int GetIntersects(BoardLettersModel boardModel, string prefix, int r, int c, Direction wordDirection)
        {
            Direction intersectDirection = new Direction(wordDirection.ColOffset, wordDirection.RowOffset);

            var intersects = 0;

            for (var i = 0; i < prefix.Length; i++)
            {
                var word = boardModel.ReadWord(r, c, intersectDirection);
                if (word.Length > 1)
                {
                    intersects++;
                }
                r -= wordDirection.RowOffset;
                c -= wordDirection.ColOffset;
            }
            return(intersects);
        }