html数字华容道
时间: 2023-08-02 13:15:20 浏览: 266
数字华容道是一个经典的益智游戏,可以用 HTML 来实现。以下是一个简单的实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>数字华容道</title>
<style>
.container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 1fr);
gap: 10px;
padding: 10px;
background-color: #eee;
border: 1px solid #ccc;
width: 300px;
height: 300px;
margin: 0 auto;
}
.container div {
display: flex;
align-items: center;
justify-content: center;
font-size: 3rem;
font-weight: bold;
cursor: pointer;
background-color: #fff;
border: 2px solid #ccc;
border-radius: 5px;
transition: all 0.2s ease-in-out;
}
.container div:hover {
background-color: #ccc;
color: #fff;
}
.empty {
background-color: transparent;
border: none;
cursor: default;
}
</style>
</head>
<body>
<div class="container">
<div class="tile">1</div>
<div class="tile">2</div>
<div class="tile">3</div>
<div class="tile">4</div>
<div class="tile">5</div>
<div class="tile">6</div>
<div class="tile">7</div>
<div class="tile">8</div>
<div class="tile">9</div>
<div class="tile">10</div>
<div class="tile">11</div>
<div class="tile">12</div>
<div class="tile">13</div>
<div class="tile">14</div>
<div class="tile">15</div>
<div class="empty"></div>
</div>
<script>
const container = document.querySelector('.container');
const tiles = document.querySelectorAll('.tile');
const emptyTile = document.querySelector('.empty');
tiles.forEach(tile => {
tile.addEventListener('click', () => {
const tileRow = parseInt(tile.style.gridRow);
const tileCol = parseInt(tile.style.gridColumn);
const emptyRow = parseInt(emptyTile.style.gridRow);
const emptyCol = parseInt(emptyTile.style.gridColumn);
if ((Math.abs(tileRow - emptyRow) === 1 && tileCol === emptyCol) ||
(Math.abs(tileCol - emptyCol) === 1 && tileRow === emptyRow)) {
// Swap positions
tile.style.gridRow = emptyRow;
tile.style.gridColumn = emptyCol;
emptyTile.style.gridRow = tileRow;
emptyTile.style.gridColumn = tileCol;
}
});
});
</script>
</body>
</html>
```
该代码使用 CSS Grid 布局来创建一个 4x4 的棋盘,使用 div 元素表示每个方块。其中一个方块是空的,表示未填充数字。
JavaScript 代码处理每个方块的点击事件,当点击一个相邻的方块时,交换它们的位置。当所有方块按顺序排列时,游戏胜利。
阅读全文