function findTargetX(y, cols) { for (x = 1; x <= Right; x += cols) { if ([x,2] == [1,y]) { return x; } } for (i = 1; i <= cols; i++) { [x+i-1,1] = [i,1]; } return x; } function findTargetY(from, targetX) { for (y = 2; y < from; y++) { if ([targetX,y] == "") { return y; } } return from; } cols = Right; maxY = 2; for (y = 3; y <= Bottom; y++) { targetX = findTargetX(y, cols); targetY = findTargetY(y, targetX); if (targetY > maxY) { maxY = targetY; } if (targetX == 1 && targetY == y) { continue; } for (i = 1; i <= cols; i++) { [targetX+i-1,targetY] = [i,y]; [i,y] = ""; } } DeleteRow(maxY+1, Bottom);