JavaScript数字拼图游戏是一种基于浏览器的互动游戏,玩家需要通过移动数字方块来达到特定的目标布局。以下是一个简单的数字拼图游戏源码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数字拼图游戏</title>
<style>
.puzzle-container {
display: grid;
grid-template-columns: repeat(3, 100px);
grid-gap: 5px;
}
.puzzle-tile {
width: 100px;
height: 100px;
background-color: #ddd;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
</style>
</head>
<body>
<div id="puzzle" class="puzzle-container"></div>
<script src="puzzle.js"></script>
</body>
</html>
const puzzleContainer = document.getElementById('puzzle');
const size = 3;
let emptyTile = { row: 2, col: 2 };
let tiles = [];
function createTiles() {
for (let row = 0; row < size; row++) {
tiles[row] = [];
for (let col = 0; col < size; col++) {
const tile = document.createElement('div');
tile.className = 'puzzle-tile';
tile.textContent = row === emptyTile.row && col === emptyTile.col ? '' : (row * size + col + 1);
tile.onclick = () => moveTile(row, col);
puzzleContainer.appendChild(tile);
tiles[row][col] = tile;
}
}
}
function moveTile(row, col) {
if ((Math.abs(row - emptyTile.row) === 1 && col === emptyTile.col) ||
(Math.abs(col - emptyTile.col) === 1 && row === emptyTile.row)) {
tiles[emptyTile.row][emptyTile.col].textContent = tiles[row][col].textContent;
tiles[row][col].textContent = '';
[tiles[emptyTile.row][emptyTile.col], tiles[row][col]] = [tiles[row][col], tiles[emptyTile.row][emptyTile.col]];
emptyTile = { row, col };
checkWin();
}
}
function checkWin() {
for (let row = 0; row < size; row++) {
for (let col = 0; col < size; col++) {
if (tiles[row][col].textContent !== (row * size + col + 1).toString()) {
return;
}
}
}
alert('恭喜你,游戏胜利!');
}
createTiles();
通过上述代码和说明,你可以创建一个基本的数字拼图游戏,并根据需要进行扩展和优化。
没有搜到相关的文章