随机数字消消乐游戏3*3html+JavaScript代码
时间: 2024-03-12 14:47:01 浏览: 65
以下是一个简单的随机数字消消乐游戏3*3的HTML和JavaScript代码示例:
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>随机数字消消乐游戏</title>
<style type="text/css">
table {
border-collapse: collapse;
margin: auto;
}
td {
width: 50px;
height: 50px;
text-align: center;
font-size: 24px;
border: 1px solid black;
cursor: pointer;
}
td.selected {
background-color: yellow;
}
td.matched {
background-color: lightgreen;
cursor: default;
}
</style>
</head>
<body>
<h1>随机数字消消乐游戏</h1>
<table id="gameTable">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<button onclick="newGame()">新游戏</button>
<button onclick="checkMatch()">检查匹配</button>
<script src="game.js"></script>
</body>
</html>
```
JavaScript代码:
```javascript
var gameTable = document.getElementById("gameTable");
var cells = gameTable.getElementsByTagName("td");
var selectedCells = [];
var numbers = [];
// 初始化游戏
function newGame() {
selectedCells = [];
numbers = generateNumbers();
for (var i = 0; i < cells.length; i++) {
cells[i].innerHTML = numbers[i];
cells[i].className = "";
cells[i].onclick = function() { selectCell(this); };
}
}
// 生成随机数字
function generateNumbers() {
var numbers = [];
for (var i = 0; i < cells.length / 2; i++) {
var number = Math.floor(Math.random() * 100);
numbers.push(number);
numbers.push(number);
}
shuffleArray(numbers);
return numbers;
}
// 数组随机排序
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
// 点击方格
function selectCell(cell) {
if (cell.className != "matched") {
cell.className = "selected";
selectedCells.push(cell);
if (selectedCells.length == 2) {
var number1 = Number(selectedCells[0].innerHTML);
var number2 = Number(selectedCells[1].innerHTML);
if (number1 == number2) {
selectedCells[0].className = "matched";
selectedCells[1].className = "matched";
selectedCells = [];
} else {
setTimeout(function() {
selectedCells[0].className = "";
selectedCells[1].className = "";
selectedCells = [];
}, 1000);
}
}
}
}
// 检查匹配
function checkMatch() {
var unmatchedCells = [];
for (var i = 0; i < cells.length; i++) {
if (cells[i].className != "matched") {
unmatchedCells.push(cells[i]);
}
}
for (var i = 0; i < unmatchedCells.length - 1; i++) {
for (var j = i + 1; j < unmatchedCells.length; j++) {
var number1 = Number(unmatchedCells[i].innerHTML);
var number2 = Number(unmatchedCells[j].innerHTML);
if (number1 == number2) {
unmatchedCells[i].className = "matched";
unmatchedCells[j].className = "matched";
return;
}
}
}
}
```
该代码包含一个 `gameTable` 表格元素、一组 `cells` 单元格元素、一个 `selectedCells` 数组存储已选中的单元格、一个 `numbers` 数组存储随机生成的数字,以及若干个函数。
在页面加载时,`newGame()` 函数会生成随机数字并将它们填充进表格中。每当单元格被点击时,`selectCell()` 函数会将该单元格加入 `selectedCells` 数组中,并检查是否已选择了两个单元格。如果已选择了两个单元格,则会检查它们的数字是否相同,如果相同则将它们标记为匹配,否则在一秒后取消选择。`checkMatch()` 函数会检查所有未匹配的单元格中是否存在两个数字相同的单元格,如果找到则将它们标记为匹配。
你可以将该代码复制到文本编辑器中,将文件保存为 `game.html` 并在同一目录下创建名为 `game.js` 的 JavaScript 文件,然后在浏览器中打开 `game.html` 文件来运行该游戏。
阅读全文