扫雷是一款经典的桌面游戏,玩家需要在一个网格中找出所有非雷的格子,同时避开隐藏的雷。下面是如何使用JavaScript实现一个简单的扫雷游戏的概述。
以下是一个简单的JavaScript实现扫雷游戏的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>扫雷游戏</title>
<style>
.cell { width: 20px; height: 20px; border: 1px solid #ccc; display: inline-block; margin: 2px; }
</style>
</head>
<body>
<div id="game-board"></div>
<script>
function createBoard(rows, cols, mines) {
let board = Array.from({ length: rows }, () => Array(cols).fill(0));
let minePositions = new Set();
while (minePositions.size < mines) {
let row = Math.floor(Math.random() * rows);
let col = Math.floor(Math.random() * cols);
minePositions.add(`${row}-${col}`);
}
for (let pos of minePositions) {
let [row, col] = pos.split('-').map(Number);
board[row][col] = -1;
for (let i = -1; i <= 1; i++) {
for (let j = -1; j <= 1; j++) {
let newRow = row + i;
let newCol = col + j;
if (newRow >= 0 && newRow < rows && newCol >= 0 && newCol < cols && board[newRow][newCol] !== -1) {
board[newRow][newCol]++;
}
}
}
}
return board;
}
function renderBoard(board) {
let gameBoard = document.getElementById('game-board');
gameBoard.innerHTML = '';
for (let row of board) {
for (let cell of row) {
let div = document.createElement('div');
div.className = 'cell';
div.onclick = () => revealCell(board, row.indexOf(cell), row.indexOf(cell));
div.textContent = cell === -1 ? '' : cell;
gameBoard.appendChild(div);
}
}
}
function revealCell(board, row, col) {
let cell = board[row][col];
if (cell === -1) {
alert('游戏结束!');
return;
}
// 这里可以添加揭开格子的逻辑
}
let board = createBoard(10, 10, 10);
renderBoard(board);
</script>
</body>
</html>
Set
来存储雷的位置,确保每个雷的位置都是唯一的。这个示例代码提供了一个基本的扫雷游戏框架,你可以根据需要进一步扩展和完善功能。
高校公开课
技术创作101训练营
一体化监控解决方案
停课不停学第四期
视频云直播活动
Tencent Serverless Hours 第12期
技术创作101训练营
第136届广交会企业系列专题培训
Elastic 实战工作坊
领取专属 10元无门槛券
手把手带您无忧上云