## Introduction

Akari or Light Up
is an interesting logic game published by
Nikoli
and played on a rectangular grid of black and white cells. Some of the black cells contain numbers from 0 - 4, and the object of the game is to illuminate all the white cells with light bulbs. Bulbs are placed on white cells and each will light its row and column in both directions until blocked by a black cell. What makes the game interesting is that no bulb can illuminate another and that when the puzzle is completed the numbered cells must have exactly their given number of bulbs touching their four sides (any touching their corners do not count).
**Each puzzle has a unique solution: ie there is only one way to satisfy the numbers on the black cells and at the same time to illuminate all the white cells with no bulb shining on another.**

In pzl Akari bulbs are placed using a left mouse click. The program will automatically light the corresponding row and column in both directions up to the the edge of the puzzle or the next black cell. As a solving aid, cells which can be deduced not to contain bulbs may be marked with a dot using a right mouse click. Either designation can be undone by a middle mouse click.

## Akari Example

A screenshot from pzl Akari part way through a simple game. Click to see an animation showing the use of the hint button to solve this complete puzzle. The delay between images is 2 seconds.

## Summary

The program contains 20 solving algorithms numbered 0 - 19, ordered very roughly on their complexity, so that low numbered algorithms are easier to understand/apply than those with high numbers. The program contains 5 blocks of 100 puzzles with sizes 12x10, 18x12, 20x18, 24x20, 36x20, numbered sequentially from 0 to 499. Within each block of a 100 the puzzles are ordered by their difficulty score, easiest first.

The program starts with a randomly selected puzzle displayed. Place light bulbs so that every white square on the board is lit and all the numbered squares are vertically and horizontally contiguous with exactly their given number of light bulbs. No light bulb can be illuminated by another and there is only one solution to each puzzle.

Bulbs are placed using a left mouse click. Cells can be marked as blocked using a right mouse click. Middle mouse undoes a bulb or a block. In the toolbar at the top of the window the jigsaw symbol contains a menu, the pzl Akari bulb symbol starts a new game; the wand requests a hint, a second click on the wand will perform the hint operation; the thumb checks if the puzzle contains any errors and a second click will clear the errors; the sad smiley shows the solution; the entrybox shows the current puzzle number and can be used to select a new puzzle number; the number next to the puzzle number is the puzzle difficulty score which depends on the size of the puzzle and the algorithms required to find its solution. The clock ticks every 5 seconds but will be replaced by the algorithm number if a hint is requested.

## Selecting puzzles

The program contains 5 blocks of 100 puzzles with sizes 12x10, 18x12, 20x18, 24x20, 36x20, numbered sequentially from 0 to 499. Within each block of a 100 the puzzles are ordered by their difficulty score, easiest first.

At the top of the display is a Toolbar. The jigsaw piece button at the left is a menu. Next to this is an Akari bulb icon which is used for selecting a random puzzle from the program's 500 built in puzzles. To the right of the sad smiley is a box which shows the current puzzle number. This puzzle number display is also an Entry box: players can position the cursor over this area and type in a number between 0 and 499 followed by "Enter" to load the corresponding puzzle. At any time, hitting "Enter" when the cursor is in the Entry box will restart the current puzzle.

## Using Hints

Hints are requested using the wand icon in the Toolbar. When this is clicked the program will flip the wand icon so that it leans backwards and will find a cell which, based on the current state of the puzzle, can be deduced to be a bulb or can be blocked. This cell will be marked with a "?" symbol and the number of the algorithm used will replace the clock. While the hint is active (shown by the wand icon leaning backwards) clicking on the wand with the middle mouse button will cause a pop-up to appear containing a short explanation of the hint. A left click on the wand will cause the program to apply the hint. However, particularly if aided by the pop-up, players can work out for themselves whether the cell is a bulb or can be blocked, and so set it accordingly. The program will always find the simplest hint it can, ie it applies its hint algorithms, in order, lowest number first, and will report the first hint found.

## Checking for Errors

Clicking on the hand button causes the program to check the puzzle for errors. If errors are detected the hand will flip to the thumbs down position. A further click on the hand will undo all errors. Note that when a hint is requested the program always checks the puzzle for errors first. If errors are detected no hint search will be performed and the hand will flip to thumbs down. A click on the hand and the squares with errors will be highlighted.

## Difficulty Score

The Difficulty Score is the middle of the three numbers to the right of the toolbar. Because puzzles can be solved in many different ways, and players may find harder or easier ways than those the program used when it calculated the score, the Difficulty Score can only provide a rough indication of the difficulty. Nevertheless it does give a useful indication of the relative difficulty of puzzles.

## Algorithms

The program contains 20 hint algorithms or patterns it can recognise and use to decide if a cell is a bulb or can be blocked. These algorithms are numbered 0 - 19 and except for algorithm 0 they are explained with examples below. Obviously all of the given examples have symmetrical equivalents and players will need to learn to recognise those. Moreover, with experience players will realise that these algorithms really exemplify instances of a few general solving principles and that it is these general principles that are required to solve puzzles.

Algorithm 0 is the simplest and recognises that any black cell containing a 0 can be blocked on all sides.

## Akari Algorithm 1

If a cell has number N and only N neighbours that can be bulbed, then they are all bulbs. Here the 3 only has 3 available neighbours, so they are all bulbs.

## Akari Algorithm 2

If a cell is unlit and can only be lit by itself, it must be a bulb. Here ? can only be lit by itself or by the cell to its left. But the cell to its left cannot be a bulb because the 1 below it is already touching a bulb, so the ? is a bulb.

## Akari Algorithm 4

If a cell can only be lit by one cell, that cell must be a bulb. Here the two unlit cells along the right edge can only be lit by a bulb on the cell marked ?.

## Akari Algorithm 3

If a cell has number 3 then no bulb can occupy its adjacent diagonals as each would block bulbs along two sides and so it could never be satisfied. Here the ? and the other three diagonals of the 3 can all be blocked.

## Akari Algorithm 5

If a cell has number 1 and has two unbulbable adjacent cells arranged diagonally to one another, then no bulb can occupy the cell on the opposite diagonal because it would block both of the 1s possible bulb placements. Here the cells to the right and below the 1 are already lit and only the other two adjacent unlit cells can take a bulb. A bulb in the ? cell would block both of these cells, so the cell marked with ? can be blocked.

## Akari Algorithm 6

When two unsatisfied 1s are arranged on diagonally adjacent cells and one of them has only two remaining unlit cells, both of which would also satisfy the other 1, one of those two unlit cells must contain a bulb. This bulb will satisfy both 1s and so no other cells touching the 1s can contain a bulb. Here the upper 1 of the pair is blocked above and to the right and so must have a bulb to its left or below. Either of these positions will satisfy the lower 1, and so the other two sides of the lower 1 cannot contain bulbs, so the ? cell can be blocked.

## Akari Algorithm 7

When a 3 requires one more bulb and on an adjacent diagonal has a cell also requiring one more bulb, then one of the two empty cells adjacent to the 3 must satisfy both. Therefore any other unlit cells around the unsatisfied cell can be blocked. Here either the cell above the 3 or the cell to its left must be a bulb and so the ? cell can be blocked.

## Akari Algorithm 8

When on an adjacent diagonal a 3 has a cell requiring one more bulb, and this bulb can only be next to the 3, we know that the other two cells touching the 3 must be bulbs. Here, either the cell to the right of the 3 or the cell below the 3 must be a bulb (but not both), so both the cell above the 3 and the cell to its left must be bulbs.

## Akari Algorithm 9

When a 2 with one touching bulb and an unsatisfied 1 are diagonally adjacent and the 2 must be satisfied with a bulb which also touches the 1, any other cells touching the 1 can be blocked. Here the 2 must have a bulb above or to its right, both will also satisfy the 1, so the ? can be blocked.

## Akari Algorithm 10

When a 2 is blocked on one side and is not touching any bulbs, a bulb on two of its adjacent diagonals would prevent it from being satisfied. Therefore these diagonals cannot be bulbs. Here the 2 can have bulbs above and to either side, but a bulb in the ? cell would block two of these so that the 2 could not be satisfied. Hence the ? can be blocked (and the same is true for the other diagonal).

## Akari Algorithm 11

When a 2 touching no bulbs is blocked on one side and is also diagonally adjacent to an unsatisfied 1, only one bulb can be placed touching the 2 and the 1. So the unblocked cell not touching the 1 must be a bulb. Here the 2 must have a bulb above or to its left, but not both, and so the cell below it must also be a bulb.

## Akari Algorithm 12

When a 2 touching no bulbs is diagonally adjacent to a cell requiring one more bulb, and that bulb must touch the 2, the other bulb for the 2 must be placed on one of its other two sides. A bulb on their bisecting diagonal would block both of these possibilities, hence this diagonal cell can be blocked. Here the lower 2 requires one more bulb and that must be above it or to its right. This would leave the upper 2 requiring one more bulb, which must go above it or to its right (here already blocked, but the argument remains the same). A bulb on the diagonal between these two possibilities would block them both and so this cell (marked with a ?) can be blocked.

## Akari Algorithm 13

When a 2 and a 1 are adjacent and neither touches any bulbs and the 1 is blocked on the side distal from the 2, then the 2 cannot be satisfied by bulbs which would block the 1. So the cell on the side of the 2 distal from the 1 must be a bulb. Here the 2 cannot have bulbs both above and below because the adjacent 1 could then not be satisfied, so only one of these cells can have a bulb and the cell marked ? must be the other bulb.

## Akari Algorithm 14

This algorithm looks for cells which if bulbed would block the only way to light another cell. Any such cells can be blocked. Here there are two 1s arranged one above the other. The only ways to light the cell to the left of the upper 1 are a bulb above the cell marked with ? or the cell to the right of the cell marked ?. A bulb placed in the cell marked ? would block both of these possibilities, so it cannot be a bulb.

## Akari Algorithm 16

When a cell requires one more bulb which can only be placed in one of two places, any cell which if bulbed would block both of these places cannot be a bulb. Here the 2 diagonally adjacent to the cell marked ? requires an additional bulb which can only be placed above it or to its right. A bulb in the cell marked ? would block both these cells and so the ? is not a bulb.

## Akari Algorithm 15

When a 2 and a 1 are diagonally adjacent and the 2 is blocked on a side distal to the 1, two of the three unblocked cells next to the 2 are also next to the 1. The 2 requires two bulbs and to avoid having two bulbs next to the 1 the cell not touching the 1 must be a bulb. Here the cell marked ? must be a bulb because only one of its other two open cells can accept a bulb or the 1 would be touching two bulbs.

## Akari Algorithm 18

This is very similar to algorithm 17. When two 2s are diagonally adjacent and one of them requires only one more bulb, that bulb will be shared with the other 2 and that 2 must have a bulb on its other side. Here the cell marked ? must be a bulb because only one of the two open cells touching the upper 2 can contain a bulb.

## Akari Algorithm 17

When two 2s are diagonally adjacent and one of them requires only one more bulb, that bulb will be shared with the other 2 and that 2 must have a bulb on its other side. Here the 2 to the right of the cell marked ? needs two bulbs and the 2 diagonally above it only 1. So only one of the empty cells adjacent to both 2s can contain a bulb and the lower 2 must have a bulb to its left.

## Akari Algorithm 19

This algorithm, similar to 14, looks for cells which if bulbed would block the only way to light another cell. Any such cells can be blocked. Here if the cell marked with ? was a bulb, then all would be lit except for the cell next to the 1 above and to its right. This cell would then need to be lit by its own bulb, but that is not allowed as the adjacent 1 would then be next to two bulbs. So the cell marked ? can be blocked.