private Result solveDiag(Board board, boolean isLeft) {
        final int dim = board.getDimension();
        Entry first = null;
        int numMatch = 0;
        for (int i = 0; i < dim; i++) {
            final int j = isLeft ? i : dim - 1 - i;
            final Entry current = board.get(i, j);

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

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

            numMatch++;
        }

        if (numMatch != dim) return null;

        return entryToResult(first);
    }