we can essentially write the "completed solution" like this:
___a_____b_____c_____d___
|0 _ 1|2 _ 3|4 _ 5|6 _ 7|
|8 9|10 11|12 13|14 15|
-------------------------
the a,b,c,d are merely for labelling purposes...
now.. the top and bottom rows can be shunted left and right as displayed below...
shifting top right once gives:
___a_____b_____c_____d___
|6 _ 7|0 _ 1|2 _ 3|4 _ 5|
|8 9|10 11|12 13|14 15|
-------------------------
shifting the top row left gives us the original position again:
___a_____b_____c_____d___
|0 _ 1|2 _ 3|4 _ 5|6 _ 7|
|8 9|10 11|12 13|14 15|
-------------------------
then shifting the bottom row left gives:
___a_____b_____c_____d___
|0 _ 1|2 _ 3|4 _ 5|6 _ 7|
|10 11|12 13|14 15|8 9|
-------------------------
........
also we can rotate the individual squares. so say, rotating the "c" square clockwise, gives:
___a_____b_____c_____d___
|0 _ 1|2 _ 3|14_ 4|6 _ 7|
|10 11|12 13|15 5|8 9|
-------------------------
then rotating the "b" square counter-clockwise gives:
___a_____b_____c_____d___
|0 _ 1|3 _13|14_ 4|6 _ 7|
|10 11|2 12|15 5|8 9|
-------------------------
----------------------
that should give you an idea of valid moves..
in the real life version, it is in a circle, and the "a" side connects to the "d" side.