So, after the introduction, you now know what Nonograms are, but you need to know how to go about solving them. How do you even start, when you've just got a blank grid? That's what this tutorial is for.

There are several things you can do to fill in parts of the grid, and none of them
are too tricky. Just take one row or column at a time, look at what's in there already,
and look at the clue. If you can tell anything definite about the blank squares, fill
them in, otherwise go on to the next one. Only fill in a solid or dot if you are sure,
not just 'probably', because mistakes are *very* difficult to undo!

Here are some basic techniques to get you started. Feel free to figure out more of your own, and figure out easy shortcuts to these ones.

You can use this method whenever a block is so big that wherever you put it in the row, some of the
squares will *always* end up solid. If you put it at the far left-hand end
(or top), and then put it at the far right-hand end (or bottom), the two positions
of the block will *overlap*.

For example, consider a row of 10 blanks, with the clue `7.`

like this:
`7.`

What can you tell about this row?

You know there's a block of 7 solids there somewhere, but you
don't know where. What you *do* know, however, is that wherever the block goes,
there are squares in the middle which will *always* be solid. Here are the
different positions of the block, to make things clearer:

So by looking at the overlap, we know that the four squares in the centre *must*
be solids, and we can colour them in:
`7.`

Now, that's quite simple for a single block, all you have to do is count squares
from each end, and colour in the overlap. But what if you have more than one block? Well,
you look at the overlap in exactly the same way, you just have to be careful to count
different numbers of squares from each end (so the overlap does not have to be symmetric).
Let's look at the same row of 10 blanks, but with the clue `5.2.`

If it was
just `5`

, or just `2`

, then we wouldn't be able to tell anything
just yet, as the blocks wouldn't overlap, but `5.2`

will. Check out the
picture, and look at the possible arrangements (there are 6 of them):
The block of `5`

will stretch at least 8 squares from the right (5 plus 2
plus at least one dot), and at least 5 squares from the left, which gives a
3-square overlap. However, the block of `2`

has no overlap. Yet.
So the squares which can be coloured in as solids are:
`5.2.`

Note that all the above applies exactly the same to columns as it does for rows. Also
note that this method is the *only* way to start off the puzzle, as all the other methods
rely on other squares already having been filled in on that row or column.

So now you've got some of your grid filled in, using the overlaps, but what next?
One very simple thing you can do is check the 'minimum range' of the blocks.
In other words, if a block is right up against the edge, how far must it stretch,
*at least*? For example, suppose you have the following:
`5.`

You know that the block must stretch to at least 5 squares away from the edge, so if
the second square is a solid, then so must the four next to it :
`5.`

This can also be used to check how far a block stretches away from a dot, as well as from the edge of the puzzle.

Continuing with the previous example, we know there's just one block of five solids on
this row, and we know where four of them are. So if we examine the *maximum range*
of this block, we know where the solids definitely *can't* be. Now we can add our
first dots! Just count five squares from the leftmost solid :
`5.`

Note that these dots can only be filled in if that was the last block on the line. If the
clue was `5.1`

, then they would *all* have to be left blank for now, as
any of them could be solid. We'll revisit this later.

In essence, if the gap's too small for the block, it ain't gonna fit in! For example,
if there is a single blank square between two dots, and your smallest block is a
`2`

:
`2.2.`

then that single blank can't be a solid, and must be another dot.
Also, both blocks cannot fit into the gap to the left of the dots (since they would require
5 blank squares), or in the gap to the right of the dots (for the same reason), so
there must be one block of 2 in each gap. Since we now have on the right, a block of
`2`

in the space of 3 blank squares, we can use *overlap* to fill in
one solid:
`2.2.`

Now suppose we had the same starting point as before, with our one-blank square between
two dots, but this time with our clue containing a block of `1`

:
`1.2.2.`

At first sight, since we have a block of `1`

in the line, one would think that
we couldn't eliminate this single blank. But, the block of `1`

cannot fit in
this gap, as there would not be room to fit in the other two blocks to the right of it.
So we can again put a dot in this position, and examine the remaining possibilities.
Clearly, the only way to arrange this is to put the `1`

and the first `2`

to the left of the dots, and the remaining `2`

to the right. So now we can fill
in lots of squares, as follows:
`1.2.2.`

Often, you get solids on your line but you can't tell to which of the blocks they belong.

For example, suppose you start off with a single solid on your row:
`2.1.`

Can you tell anything else? The answer is no, because that solid could belong to either the
`2`

or the `1`

. If it's the `2`

, then the other solid in that
block could be on either side, so you can't put dots there, or anywhere to the right because the
`1`

could be anywhere there. And if it's the `1`

, then the `2`

could be anywhere on the left, so you can't put anything there either.
You need more information.

Now suppose that after following more clues, you get an extra solid on your line:
`2.1.`

Now you know that it can't be the `1`

, and you can go to town putting dots in all
the squares to the left. Just one extra square can give you a lot of information.
`2.1.`

Alternatively, if the clues you follow give you a solid in a *different* place, this
could lead you to quite different conclusions. Suppose the extra solid was found over
to the left instead:
`2.1.`

Now, you know that the original solid *can't* belong to the `2`

, because
that must be over to the left, so you can fill in lots of dots based on Maximum Range.
`2.1.`

With larger blocks, it is not as easy to determine which block is which, so extra care is needed.

So did any of that make sense to you?

- Kind of, but a worked-through example would be nice...?
- Yeah, let me at a practice puzzle then.
- My brain is full. Stop the ride, I want to get off.