Con estas 2 funciones podrás rotar cualquier pieza y mezclar el puzzle:
Código :
function rotar90(clip){// gira la pieza(clip) 90º
clip._x -=clip.a2; clip._y -=clip.b2;
rt = clip._rotation += 90;
clip.a2 = 2.5*(m1*(rt!=0)+m1*(rt==180)+m2*(rt==90)-m2*(rt==270));
clip.b2 = 2.5*(m2*(rt!=0)+m2*(rt==180)-m1*(rt==90)+m1*(rt==270));
clip._x +=clip.a2; clip._y +=clip.b2
}
// mezcla las piezas en el espacio definido por el cuadrado
// con esquina superior-izquierda(a,b) e inferior-derecha (c,d).
//Si se pasa un quinto valor(e) cualquiera, gira la pieza aleatoriamente 90,180 o 270º
function mezclar(a,b,c,d,e){
len=pz.length;
for(var j=0;j<len;j++){
pz[j]._x=a+(c-a)*Math.random();
pz[j]._y=b+(d-b)*Math.random();
if(e){
as=Math.floor(4*Math.random());
for(var k=0;k<as;k++){
rotar90(pz[j]);
}
}
}
}
Ejemplo:
mezclar(0,0,500,500,1)