Just an idea. If you have letters on the board both vertical and horizontal you can take each row of letters or column
Code:
___________________________________________
____|____|____|__A__|____|____|__R__|____|
A D O R E
list of letters: deo
adeor
And use the distance between them as an offset
so you first add the letters a and r to your list of letters and then after you get a list of words that contain all the letters load each word into an array one at a time then scann until you find the first letter on the board here which is an A counting each letter from the beginning of the word. Then get the distance from the edge of the board to A in the row and compare that with the count of letters to make sure you have enough room. Then add the distance between A and R to the pointer and test for R in the word to see if the word will match the spacing of letters. Then take the difference between R and the edge of the board and see if that is greater then the distance beween R and the end of the word so you know there is enough room.