用JavaScript+HTML實現雙色球隨機搖號效果
首先要知道雙色球的規則是什么
雙色球投注區分為紅球號碼區和藍球號碼區
紅球號碼范圍為01~33,藍球號碼范圍為01~16
雙色球每期從33個紅球中開出6個號碼,從16個藍球中開出1個號碼作為中獎號碼
雙色球玩法即是競猜開獎號碼的6個紅球號碼和1個藍球號碼,順序不限
知道了規則以后,我們就可以用代碼實現了,廢話不到說,直接上代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>雙色球</title>
<style> span { /*display: none;*/ margin: 5px; font-size: 30px; width: 70px; height: 70px; background-color: red; color: white; text-align: center; line-height: 70px; display: inline-block; border-radius: 50%; } .blue { background-color: blue; } button { width: 75px; height: 40px; font-size: 20px; border: none; color: white; background-color: gray; cursor: pointer; } </style>
</head>
<body>
<p>
<span class="red"></span>
<span class="red"></span>
<span class="red"></span>
<span class="red"></span>
<span class="red"></span>
<span class="red"></span>
<span class="blue"></span>
</p>
<button>搖號</button>
</body>
</html>
<script> // 紅色球號碼從1--33中選擇;藍色球號碼從1--16中選擇 let spanRed = document.querySelectorAll('.red'); let spanBlue = document.querySelector('.blue'); let btn = document.querySelector('button') /** * 返回一個指定數值范圍(start~end)內的、元素互不重復的、且長度為len隨機數組 * @param start * @param end * @param len * @returns {any[]} */ function maker(start, end, len) { let set = new Set(new Array(len)); set.clear(); for (; ;) { let ok = Math.round(Math.random() * (end - start)) + start; if (!set.has(ok)) { set.add(ok); } if (set.size === len) { break; } } //集合轉化為數組 return Array.from(set); } function randomNumber() { let red = maker(1, 33, spanRed.length); for (let i = 0; i < spanRed.length; i++) { spanRed[i].innerHTML = red[i]; } let blue = maker(1, 16, 1); spanBlue.innerHTML = blue[0]; } randomNumber(); btn.addEventListener('click', randomNumber); </script>
運行后如下:
點擊搖號,產生一組隨機數