2 回答

TA貢獻1856條經(jīng)驗 獲得超11個贊
考慮下面的小游戲,它使用你的情況,它從源數(shù)組中計算你的 randomNumber 的總和。
它檢查總和是否 >= 12。然后讓游戲休息!
這有幫助嗎?
const Numbers = [8, 4, 6, 2];
var randomNumber = 0;
var sum = 0;
function calcSum() {
randomNumber = Numbers[Math.floor(Math.random() * Numbers.length)];
sum = sum + randomNumber;
if (sum >= 12) {
document.getElementById('calculatedTotal').innerHTML = "Your score exceeded 12, click 'start game' to play again!";
sum = 0;
randomNumber = 0;
}
else {
document.getElementById('calculatedTotal').innerHTML = sum;
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button id="btn" onclick="calcSum()">Start game!!</button>
<h2>Your Score: </h2>
<h3 id="calculatedTotal"></h3>
<script src="test.js"></script>
</body>
</html>

TA貢獻1784條經(jīng)驗 獲得超8個贊
每次選擇隨機數(shù)時
您必須過濾掉不構成 12 的數(shù)字。
從總和中減去選擇的數(shù)字,然后重復步驟 1 直到總和達到 0
編輯:根據(jù)問題更新,假設您使用的是 Bootstrap
document.getElementById("start").addEventListener("click", _ => {
let sum = +document.getElementById("sum").value;
let numbers = document.getElementById("numbers").value.split(',').map(x=>+x);
let picked = [];
while(sum > 0) {
// filter available `numbers` based on the `sum`
numbers = numbers.filter(x => x <= sum);
let n = numbers[Math.floor(Math.random() * numbers.length)];
picked.push(n);
// subtract `n` from `sum`
sum -= n;
}
document.getElementById("row").innerHTML = picked.map(n => `<div class="border border-dark p-3 col-${n}">col-${n}</div>`).join("");
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
Sum: <input type="text" id="sum" value="12" />
Numbers: <input type="text" id="numbers" value="8,6,2,4" /> <br/>
<button type="button" id="start">Start</button>
<div class="container-fluid">
<div class="row" id="row">
</div>
</div>
添加回答
舉報