Я строю генератор персонажа Pathfinder, но изо всех сил стараюсь, чтобы статистика была достаточно высокой. Поэтому я хотел бы рассказать об этом, если общий модификатор не будет выше 10.Выбор случайных чисел до тех пор, пока число не будет достаточно [javascript]
Кубики скатываются 4 раза, а три самых высоких рулона добавляются, чтобы сделать один стат. Шесть характеристик подаются в массив, из которого можно работать. Общий модификатор рассчитывается путем суммирования всех шести статистических данных, вычитания 60 и деления этого числа на 2. Таким образом, у меня есть все, что показано здесь.
Я предполагаю, что теперь я ищу статуту if/else, где если checkModifier() < 10, то запустите rollStat() еще раз, двигайтесь вперед. Но я не уверен, как это будет выглядеть. Или было бы лучше упростить все это в одну функцию, а затем запустить ее как заявление while?
EDIT: возникла проблема с кодом, производящим те же шесть номеров статусов. Я исправил это.
function makeDie(sides) {
var die = function() {
return 1 + Math.random() * sides | 0;
};
die.times = function (count) {
var rolls = [];
for(var i = 0 ; i < count ; i++) {
rolls.push(this());
}
return rolls;
};
return die;
}
var rollStat = function() {
var dieRolls = makeDie(5).times(4)
for (a in dieRolls) {
dieRolls[a] += 1;
}
var sortedRolls = dieRolls.sort();
var singleStat = 0;
for (b = 1; b < sortedRolls.length; b++) {
singleStat += sortedRolls[b];
}
return singleStat;
}
var sixStats = function() {
var ss = [];
for (var c = 0; c < 6; c++) {
ss.push(rollStat());
}
return ss;
}
var stats = sixStats();
var stats = stats.sort(function (a, b) {
return a - b;
});
var checkModifier = function() {
var total = 0;
for (var d in stats) {
total += stats[d];
}
return (total-60)/2;
};
Haven't смотрел на весь код, но статистика является массив всегда одних и тех же значений, что предполагаемого поведения? Кроме того, в функции rollStat у вас есть цикл под var dieRolls = makeDie (5). × (4); что ничего не делает, почему? – juvian
, если вы генерируете «случайные» числа, где минимальное допустимое число равно десяти, а затем просто добавьте десять. –
@juvian добавляет по 1 к каждому случайному числу, чтобы получить число от 2 до 6. И теперь, когда я набираю это, я понимаю, что, вероятно, лучший способ сделать это. Что касается массива: я упростил код и понял, что я удалил функциональность, чтобы получить 6 разных случайных чисел. – Alicia