Le jeu se présente sous forme d'une grille de taille variable (sur notre site 5 × 5, 10 × 10 ou 15 × 15) qui représente une image en noir et blanc et dont le quadrillage sert à repérer plus facilement les coordonnées de votre curseur. Au début du jeu, tous les pixels de l'image monochrone sont blancs et c'est à vous, en déplaçant votre curseur et en cochant les bonnes cases de reconstituer l'image en faisant apparaître les pixels noirs. Lorsque vous avez entièrement refaite l'image grâce aux indices numériques l'accompagnant, vous avez gagné ! Par contre, si le temps qui vous est donné (30 minutes) est écoulé avant que vous ayez pu trouver l'image vous avez perdu...

Pour retrouver l'image, vous disposez d'indices numériques horizontaux et verticaux. Voici leur signification : si on lit l'image en ligne (respectivement en colonne) on peut découper cette ligne (respectivement cette colonne) en "bloc" de pixels noirs séparés par au moins un pixel blanc. Par exemple l'indice de la 4ème ligne de l'image ci-dessus est "2 4 2" : cela veut dire que la 4ème ligne comporte, de gauche à droite, un bloc de 2 pixels noirs, un bloc de 4 pixels noirs, et un autre bloc de 2 pixels noirs. En réfléchissant un peu on voit qu'il n'y a qu'une seule manière de disposer ces pixels sur la ligne de 10 pixels de longueur : [XX-XXXX-XX].
Il est pratique de "griser" les cases dont on est sûr qu'elles ne seront pas cochées car ces informations peuvent servir pour plus tard. Sur l'exemple précédent, on a grisé les cases séparant deux blocs.
| 1 2 | 2 1 2 | 2 2 | 1 1 2 | 2 1 1 2 | 1 2 | 6 3 | 6 3 | 7 | 7 | |
| 4 | ||||||||||
| 2 1 4 | ||||||||||
| 4 4 | ||||||||||
| 4 | ||||||||||
| 2 6 | ||||||||||
| 4 | ||||||||||
| 2 2 | ||||||||||
| 2 | ||||||||||
| 8 | ||||||||||
| 8 |
Les astuces qui vont être citées seront faites pour les lignes mais elles fonctionnent aussi bien pour les colonnes. Dans les exemples, les cases cochées seront représentées par des "X", les cases grisées par des "-" et les cases indéterminées par des "?". De plus à chaque fois on montrera ce que l'on connait puis ce que l'on déduit en séparant les deux par le symbole "=>".
Les longueurs des lignes étudiées seront généralement de 10 mais il faudra se rappeler qu'elles marchent pour toutes les longueurs, non seulement parce que les grilles peuvent prendre 3 formats différents mais aussi parce que ces astuces sont aussi valables pour remplir des pixels entre deux blocs. Par conséquent, une première astuce consiste à griser les pixels situés juste à coté d'un bloc pour définir de nouvelles lignes à étudier. Par exemple :
2 1 2 [?XX?????XX] => 2 1 2 [-XX-???-XX]
On a ainsi définit une nouvelle ligne d'étude de longueur 3 entre les 2 blocs de longueur 2. Cela nous laisse 3 endroits pour placer le bloc de longueur 1. Retenez bien ces sous-lignes car même si cela ne sera pas précisé, les astuces s'appliquent entre 2 blocs si on est sûr des indices entre ces deux blocs !
Ces lignes sont celles qu'il faut remplir en priorité puisque celle-ci ne nous laisse qu'une seule possibilité où il n'y a plus de case blanche (les "?") : impossible de se tromper ! Les plus simples sont celles où il y a n'y a pas d'indication (lignes entièrement grisée) ou encore dont l'unique indice numérique est la longueur de la ligne (ligne entièrement cochée). Mais il ne faut pas non plus oublier celles où l'on a :
[Somme des indices numériques] + [Nombre d'indices numériques - 1] = [Longueur de la ligne].
0 [??????????] => [----------] (Ligne entièrement grisée) 10 [??????????] => [XXXXXXXXXX] (Ligne entièrement cochée) 2 4 2 [??????????] => [XX-XXXX-XX] (ligne où l'on a [2 + 4 + 2] + [3 - 1] = [10]) 1 2 1 3 [??????????] => [X-XX-X-XXX] (ligne où l'on a [1 + 2 + 1 + 3] + [4 - 1] = [10])
Avec un tel indice, on peut cocher une partie d'un bloc de la ligne (qui est unique puisque l'indice est unique). En effet supposons que le bloc est de longueur l (petit L) et que la ligne d'étude est de longueur L. Si on imagine les 2 cas extrêmes où le bloc est collé à l'extrémité gauche (respectivement droite) de la ligne d'étude, en comptant à partir de l'extrémité droite (respectivement gauche), il y aura (L - l) blocs grisés. Puisqu'il y a deux cotés cela fait (L - l) × 2 blocs grisés au maximum, mais pour tous les autres, on est sûr à 100% qu'ils sont cochés. Ils forment le bloc central de longueur L - (L - l) × 2 = 2 × l - L. Comme on a supposé l > L / 2, on a 2 × l - L > 0 : la longueur du bloc est d'au moins un caractère...
Exemple pour L = 10 et l = 8 :
8 [XXXXXXXX--] (cas extrême gauche)
8 [-XXXXXXXX-]
8 [--XXXXXXXX] (cas extrême droit)
||||||
8 [??XXXXXX??] (cas commun)
La longueur du bloc central est 2 × l - L = 2 × 8 - 10 = 6
Tous les cas pour L = 10 :
6 [??????????] => [????XX????] (2 × 6 - 10 = 2)
7 [??????????] => [???XXXX???] (2 × 7 - 10 = 4)
8 [??????????] => [??XXXXXX??] (2 × 8 - 10 = 6)
9 [??????????] => [?XXXXXXXX?] (2 × 9 - 10 = 8)
Ce type d'indice permet de griser les cases qui ne peuvent pas être accessibles par le bloc de la longueur donnée car ils sont trop "loin". L'indice numérique doit être petit pour que l'on puisse griser le maximum de cases.
3 [????X?????] => [--??X??---] 2 [?????X????] => [----?X?---]
7 [X?????????] => [XXXXXXX---] 3 2 [X?????????] => [XXX-??????] 1 1 4 [?????????X] => [?????-XXXX]