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)); }
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); }