我有一個由3行9列(所以每列有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]
等等。
任何意見讚賞。隨意火焰我爲我的邏輯:)
我欣賞這個例子的結構和解釋。謝謝 :) – backdesk 2012-01-06 11:49:49