Cell types

A cell can be either empty or contain a number. The gameplay does not take place on the cells however; it takes place at the edges of the cells. Some of these edges must be blackened to form a loop such that each number clearly indicates the loop around it.

Interaction

First, the loop never crosses itself, and no, the loop doesn’t branch. Not even touching itself at a point. A number tells how many loop segments (or blackened edges) are around that cell. That’s the basics, and that’s all.

Objective

Form a loop that satisfies all the above conditions.

Walkthrough for the example

Let’s begin with R3C1. The four segments around it must be empty. This in turn causes the left segment of R2C1 to be empty; otherwise, the loop will be stuck there. By the same chain, R4C1’s left and bottom sides are empty.

Now look at R4C2. If the loop passes the left segment, it’s stuck there. So it doesn’t pass the left segment. By the same reasoning, trial and error yields us that the right segment is blackened. This in turn causes the bottom segment of R4C3 to be blackened too.

Note that if the right segment of R4C3 is passed, then it will either branch off or creates a loop too early with the given 3 before satisfying all givens. So the right segment of R4C3 is not passed. This makes the bottom segment of R4C3 continues to its right, then up since it’s the only way out. If now it goes left, the same scenario applies. So it goes up.

Nor, R3C4’s bottom is not passed. If the bottom segment of R3C3 is not passed, the loop will go around the 3 and hit the lower-right dot of R3C3 with no way out. So the bottom segment of R3C3 is passed, and thus it goes up and then left to satisfy the 3. This makes the right part goes up, then left to satisfy the 2.

If the left part goes to the left, it is stuck. So it must goes up. Observing simple, the loop must then go right to complete the loop and satisfying all givens.