const smove = move[moveIdx++];
// NOTE: condition "smove.start.x >= 0" required for Dynamo,
// because second move may be empty.
if (animate && smove.start.x >= 0) {
self.animateMove(smove, () => {
playSubmove(smove);
const smove = move[moveIdx++];
// NOTE: condition "smove.start.x >= 0" required for Dynamo,
// because second move may be empty.
if (animate && smove.start.x >= 0) {
self.animateMove(smove, () => {
playSubmove(smove);
if (moveIdx < move.length)
setTimeout(executeMove, 500);
else afterMove(smove, initurn);
if (moveIdx < move.length)
setTimeout(executeMove, 500);
else afterMove(smove, initurn);