If I understand this correctly, your “user” datatype has a field called “completed puzzles” yes? I would imagine that each puzzle has a sequence number like 1, 2, 3…n to denote the order in which they should be completed right?

Assuming:
Sequence number = field in puzzle datatype (number)

If this is the case, then a simple conditional like the one below should account for ensuring that the first puzzle is always available:

When current user's completed puzzles count is 0 and current puzzle sequence number is 1, this puzzle is clickable

For other puzzles, I would use a condition like:

When current user's completed puzzles sort by sequence number: last item is greater than or equal to current cell's puzzle's sequence number or current user's completed puzzles sort by sequence number:last item's sequence number+1 is current cell's puzzle's sequence number - this element is clickable

So as an example, if the last completed number is 6 i.e Puzzle number 6. Then the first part of the expression ensures that puzzles 1 - 6 are clickable. While the second part of the expression ensures that puzzle 7 is clickable.

On a second thought, you can merge it to be:

When current user's completed puzzles sort by sequence number: last item's sequence number+1 is less than or equal to current cell's puzzle's sequence number - this element is clickable

Hope this helps.

1 Like