ci provo anche se non ho visto questo Puzzle.

da qualche parte del filamto viene richiamata la funzione

Snap(whichPiece)

dove "whichPiece" rappresenta il valore dell'ISTANZA del pezzo da muovere.

dopodichè viene controllata la posizione x,y di "whichPiece" affinchè siano rispettate le condizioni

whichPiece._x>40 && whichPiece._x<320
whichPiece._y>40 && whichPiece._y<320


dopodichè vengono effettuati del calcoli per il riposizionamento.

Mi sembra.

Ciao