NxN のスライド タイル パズルの解を生成する JavaScript プログラムを作成しました。正しい解決策を見つけますが、解決策にたどり着くためにさまざまなパズル インスタンス間をアニメーション化するとなると、問題が発生します。最初 (3 ~ 4 ステップ) タイルは本来のように動きますが、一部のタイルが斜めに動き始め、他のタイルの上に移動します。ようやく解決策にたどり着きましたが、途中のアニメーションがうまくいきません。これが私のアニメーションループのコードです:
var steps = solution.length;
for (i=0; i<steps; i++) {
next = solution.pop();
// ANIMATE TILE
var delay = speed*i;
// sp is an array where the position (y, x) of the free spot is
var spA = current.spacePos;
var spB = next.spacePos;
var movingTile = current.box[spB[0]][spB[1]];
var leftOffset = size*(spA[1]-spB[1]);
var topOffset = size*(spA[0]-spB[0]);
var thisTile = $('#tile'+movingTile);
thisTile.delay(delay).animate({
opacity: 1.0,
top: "+=" + topOffset,
left: "+=" + leftOffset
}, speed);
// Update for next round
current = next;
};