private Result solveNonDiag(Board board, boolean isHorizontal) {
        final int dim = board.getDimension();
        for (int i = 0; i < dim; i++) {
            int numMatch = 0;

            Entry first = null;

            for (int j = 0; j < dim; j++) {
                final Entry current = isHorizontal ? board.get(i, j) : board.get(j, i);

                if (current == Entry.EMPTY || first != null && current != Entry.T && current != first) {
                    break;
                }

                if (current != Entry.T) {
                    first = current;
                }

                numMatch++;
            }

            if (numMatch == dim) return entryToResult(first);
        }

        return null;
    }