У меня есть сетка из 9 столбцов по 3 строки (поэтому каждый столбец имеет 3 слота).Минимум один слот в каждом столбце должен быть отмечен, и не более 3 могут быть отмечены.Метка представлена цифрой 1,2 или 3.
Всего всегда должно быть 15 отмеченных слотов.Чтобы добиться этого, я попробовал следующее:
var valueLeft = 15;
while (valueLeft > 0)
{
var ranValue = utils.getRandomInt(1,3);
console.log('slots remaining: ' + (valueLeft - ranValue));
if (ranValue >= valueLeft)
{
ranValue = valueLeft;
}
valueList.push(ranValue);
valueLeft -= ranValue;
}
console.log(valueList);
Но это часто дает мне массив чисел с менее чем 9 элементами внутри.Я вижу, что моя логика ошибочна, но я вырываю свои волосы, пытаясь понять, как я могу заставить их всегда давать набор из 9 элементов, каждый из которых в сумме составляет 15.
Например, что я мог быв конечном итоге это: [2, 1, 1, 1, 1, 2, 3, 1, 2, 1]
Когда мне, например, нужно: [2, 2, 1, 1, 1, 1, 3, 2, 2] или [2, 2, 1, 2, 1, 1, 3, 2, 1]
и т. Д.
Любой совет приветствуется.Не стесняйтесь разжигать меня из-за моего слабого чувства логики :)