# Interesting puzzle I can't solve

**URL:** <https://forum.kirupa.com/t/interesting-puzzle-i-cant-solve/281915>\
**Category:** Uncategorized\
**Created:** [February 15, 2009, 5:07am UTC](https://forum.kirupa.com/t/interesting-puzzle-i-cant-solve/281915 "2009-02-15T05:07:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kikon](https://avatars.discourse-cdn.com/v4/letter/k/f05b48/32.png) [@kikon](https://forum.kirupa.com/u/kikon)\
**Post date:** [February 15, 2009, 5:07am UTC](https://forum.kirupa.com/t/interesting-puzzle-i-cant-solve/281915/1 "2009-02-15T05:07:38Z")

</div>

Imagine six squares touching in two rows (3x2) layout. Now let’s say I call the first square “0”, the second “1”, third “2” and so on going left to right, then onto the second row like so:

0 1 2  
3 4 5

Here’s the puzzle: How many different ways can you move around this configuration without going back to the same square, and what are those configurations of numbers?

If I start at 0, I can move to 1,3 or 4.  
If I start at 1, I can move to 0,2,3,4,5  
If I start at 2, I can move to 1,4,5

Here are some of the possibilities if I start from 0, the top-left square:

0143   
01452   
01425   
015243  
01542   
01543   
03124   
03125   
03145   
03142   
03152   
03154   
… and many more… 34 total if I start at 0, I believe.

I am trying to have an array store all the possible ways to go around a 3x2, grid, but would like to expand it to a 3x3, 4x4 or any other configuration of squares. My code right now doesn’t do anything really, because I’m not exactly sure how to go about solving this.

```auto
// These are the values where you can move to in a grid of 3x2. Example,
// starting at 0, you can go to either 1,3 or 4. 
values = new Array(0, 1, 2, 3, 4, 5);
trace("length of values is:"+values.length);
possibilities = new Array([1, 3, 4], [0, 2, 3, 4, 5], [1, 4, 5], [0, 1, 4], [0, 1, 2, 3, 5], [1, 2, 4]);

//declaring new array, "sizes". I store the length of the sub sections in this array.
sizes = new Array();
for (var i = 0; i<possibilities.length; i++) {
	sizes* = possibilities*.length;
}
trace(sizes);//output is 3,5,3,3,5,3

solutions1 = new Array();

counter = 0;
for (var j = 0; j<values.length; j++) {
	//solutions2[j] = new Array(values.length);
	for (var i = 0; i<sizes[j]; i++) {
		trace("j is:"+j);
		trace("i is:"+i);
		trace("counter is:"+counter);
		//trace([j]+" "+*);
		trace("solutions are:"+" "+values[j]+","+possibilities[j]*);

		solutions1[counter] = values[j]+"+"+possibilities[j]*;

		//increase the counter for storing values in solutions 1 array
		counter = counter+1;
		//trace(solutions[j][counter]);
	}

}

trace("solutions array1 is:"+solutions1);

trace("End");

```

The code above will take care of the first move on the squares. Grrrr!

Thanks for helping me out, I’m really lost.
