Hello,
I need a Javascript to produce random symmetrical(mirrored) cages for a 9x9 puzzle(Basically it's a killer Sudoku , just without the numbers). Cages can be 1,2 and even 9 adjacent cells inside the puzzle(they remind Tetris pieces). I'm attaching an example of symmetrical cages.
In the example we see various cages ranging from 2-4 cells each. They are symmetrical: A cage that appears on the upper left side will appear also in the bottom right side of the puzzle.
When the script starts, it will generate strings of cages it finds in a puzzle, and print them as a string in a textarea on the page. *It doesn't have to show the puzzle. So for our example a corresponding string will be:
1,1,2,2,2,3,4,5,6,7,7,8,8,3,3,4,5,6,7,7,9,9,3,16,10,10,6,24,23,23,9,17,16,10,11,6,24,25,25,22,17,16,11,11,15,29,25,26,22,17,18,12,12,15,29,26,26,22,21,18,18,13,13,29,28,27,21,21,19,19,13,13,29,28,27,21,20,20,20,14,14
Each cell in the puzzle gets what cage it belongs to. In a 9x9 puzzle there will be 81 cells. If we move over the puzzle from left to right, top to bottom, we see that the first cage is a 2 cells size. So, in the result string it will show up as the first 1,1 (each cage is represented as a distinctive integer). The next cage is a 3 size cell and it will be represented as 2,2,2. Now the third cage is represented with the number 3, but it goes down, so only on the corresponding place in the string it would appear once again. Here is the first 18 cells, aligned as 2 rows one above the other:
1,1,2,2,2,3,4,5,6,
7,7,8,8,3,3,4,5,6,
You can see how cage number 3, is represented both on the first and second row. According the example it reaches to the third row as well.
The script should be fully customizable with these key points:
1. The number of puzzles the script produces (1,200,1000...)
2. The default puzzle should be a symmetrical one(as explained), but this can be turned off with a flag, so puzzles can be generated unsymmetrical as well.
3. The default cage size should be 2-6 (so no 1 size cages, and no cages more than 6), but this should be customizable and can be changes to 2-7,2-8 and even 1-9. So cages from size 1 up to size 9 would appear.
Good luck