Вывод:
home - (5, 3) - (2, 0)
same - (1, 1) - (4, 1)
Array size is: 2
Ругань валидатора:
Размер списка возвращаемого методом detectAllWords отличается от правильного!
З.Ы. загрузилась не последняя версия кода, в 70 строке "break;" заменен на добавление всего что найдено в список. Текущая версия блока "findWord" выглядит так
public static List<Word> findWord(int i, int j, String s, int[][] crossword){
        Pair<Integer, Integer> endPoint = null;
        List<Word> words = new ArrayList<>();
        for (int k = 1; k < 10; k++) {
            if (k==5) continue;
//            System.out.println("Checking direction N" + k);
            endPoint = findEndPoint(k, i, j, s, crossword);
            if (endPoint != null) {
                Word word = new Word(s);
                word.setStartPoint(j, i);
                word.setEndPoint(endPoint.getKey(), endPoint.getValue());
                words.add(word);
            }
        }
        if(words.isEmpty())return null;
        return words;
}