Я часами пытался выяснить, почему моя функция случайного броска "кубиков" не даст желаемых результатов.
Моя функция броска:
function roll(min, max, count) {
min = Math.ceil(min);
max = Math.floor(max);
var result = []
for (var i = 0; i < count; i++){
result.push(Math.floor(Math.random() * max) + 1);
}
return result;
}
Моя функция вызова:
var stats = [];
var STR = roll(1,6,STRrolls);
Logger.log(STR);
STRrolls имеет значение 3. Журнал выглядит так:
[19-03-20 23:26:12:7:30 по Гринвичу] [1.0, 3.0, 5.0]
Вот здесь я и спотыкаюсь.Я пытаюсь суммировать 3 значения и затем сохранить их в массиве «stats» как одно значение, чтобы я мог повторить процесс и с несколькими другими массивами.
Вот лучший примерМой сценарий:
function roll(min, max, count) {
min = Math.ceil(min);
max = Math.floor(max);
var result = []
for (var i = 0; i < count; i++){
result.push(Math.floor(Math.random() * max) + 1);
}
return result;
}
function sumArr(array) {
return array.reduce(function(a,b){
return a + b
}, 0);
}
function CHAR {
var C_R = SpreadsheetApp.getActive().getSheetByName('Char_Ref')
var STRrolls = C_R.getRange("F2").getValue();
var DEXrolls = C_R.getRange("F3").getValue();
var RESrolls = C_R.getRange("F4").getValue();
var EMProlls = C_R.getRange("F5").getValue();
var STArolls = C_R.getRange("F6").getValue();
var stats = [];
var STR = roll(1,6,STRrolls);
Logger.log(STR);
var DEX = roll(1,6,DEXrolls);
var RES = roll(1,6,RESrolls);
var EMP = roll(1,6,EMProlls);
var STA = roll(1,6,STArolls);
stats.push([STR,DEX, RES, EMP, STA])
rangeStats.setValues(stats);
rangeClass.setValue(CLASSval);
rangeLevel.setValue(1);
}
Проблема в том, что при запуске этой функции выдается один и тот же журнал до и после:
[19-03-20 17: 03: 13: 560 PDT] [3.0, 1.0, 4.0] [19-03-20 17: 03: 13: 561 PDT] [3.0, 1.0, 4.0]