html+js随机从52张图片抽3张,每张图片都可以点击按钮实现切换图片
时间: 2023-09-08 19:12:13 浏览: 177
好的,这是一个有趣的问题!下面是实现这个功能的代码:
HTML部分:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>抽卡游戏</title>
</head>
<body>
<h1>抽卡游戏</h1>
<div id="cards">
<img id="card1" src="card_back.jpg">
<img id="card2" src="card_back.jpg">
<img id="card3" src="card_back.jpg">
</div>
<button id="drawButton" onclick="drawCards()">抽卡</button>
<button id="resetButton" onclick="resetCards()">重置</button>
<script src="drawCards.js"></script>
</body>
</html>
```
JS部分:
```javascript
var cards = ["card1.jpg", "card2.jpg", "card3.jpg", ... , "card52.jpg"];
var drawnCards = [];
function drawCards() {
// 如果已经抽过三张牌了,就不再抽了
if (drawnCards.length == 3) {
alert("你已经抽过三张牌了!");
return;
}
// 随机抽一张牌
var randomIndex = Math.floor(Math.random() * cards.length);
var card = cards[randomIndex];
// 如果这张牌已经被抽过了,就重新抽
while (drawnCards.includes(card)) {
randomIndex = Math.floor(Math.random() * cards.length);
card = cards[randomIndex];
}
// 显示这张牌
var cardElement = document.getElementById("card" + (drawnCards.length + 1));
cardElement.src = card;
// 记录已经抽过的牌
drawnCards.push(card);
}
function resetCards() {
// 重置所有牌的图片
for (var i = 1; i <= 3; i++) {
var cardElement = document.getElementById("card" + i);
cardElement.src = "card_back.jpg";
}
// 清空已经抽过的牌的记录
drawnCards = [];
}
```
这段代码首先定义了一个 `cards` 数组,包含了所有的 52 张牌的图片文件名,然后定义了一个 `drawnCards` 数组,用来保存已经抽过的牌的记录。
`drawCards()` 函数是抽卡的核心部分。首先判断是否已经抽过三张牌了,如果是就弹出提示并返回。然后随机生成一个数字作为数组下标,抽一张牌。如果这张牌已经被抽过了,就重新抽,直到抽到一张没有被抽过的牌为止。最后将这张牌的图片显示在页面上,并将这张牌的文件名记录到 `drawnCards` 数组中。
`resetCards()` 函数用于重置所有的牌的图片,并清空已经抽过的牌的记录。
最后,需要在页面中引入一个 JavaScript 文件 `drawCards.js`,用来包含上述代码。
阅读全文