Good morning jenn.
monday, bloody monday...
It's refreshing to meet someone not afraid to be laughed at. The way we are currently headed, human will soon be listed under invertebrate...
What exactly does "un-call" mean?

"Oops, I called a function, function.pleaseStopImmediately()"?
"function.executeInReverse()"?
Perhaps you mean,
"You know the thing that last function I called did? How do I make another function that does the opposite?"?
"How can I pass different parameters to my function to make it do different things?"?
Anyway, you don't need to be doing any "previewing" there, you will do that in a separate function, just finish what you're doing there first, the previewing is easy.
"puzzle.functionName" will just give you a reference to the function.
To call a function, use parentheses, & add a comma seperated list of any parameters that may be req'd by the function between the parens.
puzzle.functionName(parameter1,parameter2,etc)
Give me a look at the whole function you have there now, I have to fix my bug as well, if I can remember what it was...
btw, who put that call to locatePieces() in the middle of the drop function, was that you or me? just delete it, it ain't doing anything useful.