// 获取所有拼图块的DOM元素 var blockdiv01 = document.getElementById('blockdiv01'); var blockdiv02 = document.getElementById('blockdiv02'); var blockdiv03 = document.getElementById('blockdiv03'); var blockdiv04 = document.getElementById('blockdiv04'); var blockdiv05 = document.getElementById('blockdiv05'); var blockdiv06 = document.getElementById('blockdiv06'); var blockdiv07 = document.getElementById('blockdiv07'); var blockdiv08 = document.getElementById('blockdiv08'); var blockdiv09 = document.getElementById('blockdiv09');

// 获取目标图像的DOM元素 var imgyuan = document.getElementById('imgyuan');

// 定义拼图块的位置数组 var positions = [ { top: '0px', left: '0px' }, { top: '0px', left: '150px' }, { top: '0px', left: '300px' }, { top: '150px', left: '0px' }, { top: '150px', left: '150px' }, { top: '150px', left: '300px' }, { top: '300px', left: '0px' }, { top: '300px', left: '150px' }, { top: '300px', left: '300px' } ];

// 定义拼图块的初始位置 var initPositions = [ { top: '0px', left: '0px' }, { top: '0px', left: '150px' }, { top: '0px', left: '300px' }, { top: '150px', left: '0px' }, { top: '150px', left: '150px' }, { top: '150px', left: '300px' }, { top: '300px', left: '0px' }, { top: '300px', left: '150px' }, { top: '300px', left: '300px' } ];

// 定义当前空白块的位置 var blankPosition = 8;

// 随机打乱拼图块的位置 function shuffle() { for (var i = 0; i < 100; i++) { var randomIndex = Math.floor(Math.random() * 8); swap(randomIndex, blankPosition); blankPosition = randomIndex; } }

// 交换两个拼图块的位置 function swap(index1, index2) { var temp = positions[index1]; positions[index1] = positions[index2]; positions[index2] = temp; updateBlockPosition(); }

// 更新拼图块的位置 function updateBlockPosition() { blockdiv01.style.top = positions[0].top; blockdiv01.style.left = positions[0].left;

blockdiv02.style.top = positions[1].top; blockdiv02.style.left = positions[1].left;

blockdiv03.style.top = positions[2].top; blockdiv03.style.left = positions[2].left;

blockdiv04.style.top = positions[3].top; blockdiv04.style.left = positions[3].left;

blockdiv05.style.top = positions[4].top; blockdiv05.style.left = positions[4].left;

blockdiv06.style.top = positions[5].top; blockdiv06.style.left = positions[5].left;

blockdiv07.style.top = positions[6].top; blockdiv07.style.left = positions[6].left;

blockdiv08.style.top = positions[7].top; blockdiv08.style.left = positions[7].left;

blockdiv09.style.top = positions[8].top; blockdiv09.style.left = positions[8].left; }

// 初始化拼图 function init() { shuffle(); updateBlockPosition(); }

// 拼图块被点击时触发的函数 function change(blockId) { var blockIndex = blockId.slice(-2) - 1; // 获取拼图块在数组中的下标

// 判断点击的拼图块是否与空白块相邻 if ( (blockIndex === 1 && blankPosition === 0) || (blockIndex === 0 && blankPosition === 1) || (blockIndex === 2 && blankPosition === 1) || (blockIndex === 1 && blankPosition === 2) || (blockIndex === 4 && blankPosition === 3) || (blockIndex === 3 && blankPosition === 4) || (blockIndex === 5 && blankPosition === 4) || (blockIndex === 4 && blankPosition === 5) || (blockIndex === 7 && blankPosition === 6) || (blockIndex === 6 && blankPosition === 7) || (blockIndex === 8 && blankPosition === 7) || (blockIndex === 7 && blankPosition === 8) ) { swap(blockIndex, blankPosition); blankPosition = blockIndex; }

// 判断是否拼图完成 if ( positions[0].top === initPositions[0].top && positions[0].left === initPositions[0].left && positions[1].top === initPositions[1].top && positions[1].left === initPositions[1].left && positions[2].top === initPositions[2].top && positions[2].left === initPositions[2].left && positions[3].top === initPositions[3].top && positions[3].left === initPositions[3].left && positions[4].top === initPositions[4].top && positions[4].left === initPositions[4].left && positions[5].top === initPositions[5].top && positions[5].left === initPositions[5].left && positions[6].top === initPositions[6].top && positions[6].left === initPositions[6].left && positions[7].top === initPositions[7].top && positions[7].left === initPositions[7].left && positions[8].top === initPositions[8].top && positions[8].left === initPositions[8].left ) { alert('恭喜你,拼图完成!'); } }

// 页面加载完成后初始化拼图 window.onload = function () { init(); };

经典9宫格拼图游戏 - 在线玩

原文地址: https://www.cveoy.top/t/topic/l0R4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录