# Chapter 23: Loopy Puzzle Game

You are given a grid of dots, marked with yellow lines to indicate which dots you are allowed to connect directly together. Your aim is to use some subset of those yellow lines to draw a single unbroken loop from dot to dot within the grid.

Some of the spaces between the lines contain numbers. These numbers indicate how many of the lines around that space form part of the loop. The loop you draw must correctly satisfy all of these clues to be considered a correct solution.

In the default mode, the dots are arranged in a grid of squares; however, you can also play on triangular or hexagonal grids, or even more exotic ones.

Credit for the basic puzzle idea goes to Nikoli [10].

Loopy was originally contributed to this collection by Mike Pinna, and subsequently enhanced to handle various types of non-square grid by Lambros Lambrou.

## 23.1 Loopy controls

Click the left mouse button on a yellow line to turn it black, indicating that you think it is part of the loop. Click again to turn the line yellow again (meaning you aren't sure yet).

If you are sure that a particular line segment is not part of the loop, you can click the right mouse button to remove it completely. Again, clicking a second time will turn the line back to yellow.

(All the actions described in section 2.1 are also available.)

## 23.2 Loopy parameters

These parameters are available from the ‘Custom...’ option on the ‘Type’ menu.

Width, Height
Size of grid, measured in number of regions across and down. For square grids, it's clear how this is counted; for other types of grid you may have to think a bit to see how the dimensions are measured.
Grid type
Allows you to choose between a selection of types of tiling. Some have all the faces the same but may have multiple different types of vertex (e.g. the Cairo or Kites mode); others have all the vertices the same but may have different types of face (e.g. the Great Hexagonal). The square, triangular and honeycomb grids are fully regular, and have all their vertices and faces the same; this makes them the least confusing to play.
Difficulty
Controls the difficulty of the generated puzzle.

## 23.3 Loopy user preferences

On platforms that support user preferences, the ‘Preferences’ option on the ‘Game’ menu will let you configure the following things:

‘Draw excluded grid lines faintly’. This is on by default: when a line of the grid has been explicitly excluded from the solution by right-clicking it, the line is still drawn, just in a faint grey colour. If you turn this option off, excluded lines are not drawn at all.

‘Auto-follow unique paths of edges’. This is off by default. When it's on, clicking to change the status of a single grid line will potentially propagate the change along multiple lines, if one or both ends of the line you clicked connect to only one other line. (The idea is that if two lines meet at a vertex and no other lines do at all, then those lines are either both part of the loop or neither, so there's no reason you should have to click separately to toggle each one.)

In the mode ‘Based on grid only’, the effects of a click will only propagate across vertices that have degree 2 in the underlying grid. For example, in the square grid, the effect will only occur at the four grid corners.

In the mode ‘Based on grid and game state’, the propagation will also take account of edges you've already excluded from the solution, so that it will do even more work for you.

[Simon Tatham's Portable Puzzle Collection, version 20230828.67496e7]