将其分解成块,这就是函数的用途。
var roll = function() {
return Math.floor(Math.random() * 10 + 1);
};
var getResult = function(difficulty) {
return roll() >= difficulty;
};
var getAllResults = function(totalDice, difficulty) {
var arr = [];
for (var i = 0; i < totalDice; i++) {
arr.push(getResult(difficulty));
}
return arr;
};
检查:
var results = getAllResults(220, 6);
var t = 0;
var f = 0;
for (var i = 0; i < results.length; i++) {
if (results[i]) {
t++;
} else {
f++;
}
}
console.log('total rolls', 220);
console.log('total result count (expected 220)', results.length);
console.log('boolean results (expected 220)', t + f);
console.log('successes', t);
console.log('failures', f);
console.log('raw results array', results);
修改:如果您只想获得成功次数,请创建另一个功能来计算它们:
var getSuccesses = function(results) {
var successes = 0;
for (var i = 0; i < results.length; i++) {
if (results[i]) {
successes++;
}
}
return successes;
};
//Count successes for 175 die rolls at difficulty 8:
var s = getSuccesses(getAllResults(175, 8));