** Paint by Numbers**

This was my very first java program (applet) back in the day. It is a game known as 'Paint By Numbers'. The goal is to reveal the hidden image on the board. The numbers on the columns and rows show the number of consecutive filled cells. For example, 3 5 means you have 2 blocks of filled cells of size 3 and 5 respectively. You can click on a single cell or select a block of cells. Initially, each cell is in undecided state. Single click turns the cell into white (empty) and clicking on a white cell turns it into blue (filled), clicking on a blue cell turns it into gray (undecided) again.

The numbers on the rows & columns are the constraints that you should respect when solving the puzzle. If any of these contraints are violated, you will see the numbers for the offending rows/columns turn red. A correct solution is found when no more gray cells left and no constraint is violated.

The solve button automatically solves the puzzle. The applet does not know what the final image looks like, all it knows are the values on the columns/rows just as it presents to you.