Jestem laikiem w programowaniu, znam się tylko na podstawach, ale wklepywanie kodu i wymyślanie coś samemu bardzo mnie cieszy. Wymyśliłem sobie, że napiszę mały programik, który będzie pobierał od użytkownika cyfrę i kilka stringów, program będzie losował pomiędzy tymi stringami. To taki mały Randomizer.
np.
lotting(3, "Ktos mi pomoze", "nikt mi nie pomoze", "moze mi pomoga");
I w tym momencie funkcja lotting zwraca jeden z tych stringów. np. "moze mi pomoga"
W czym problem:
Manualnie napisałem 10 stringów, które pobiera program, ale chciałbym żeby mógł pobierać np. 100 stringów
o ile tego raczej nie przeskoczę i będę musiał tutaj wprowadzać zmienne manualnie: var lotting = function(quantity, str0, str1, str2, str3, str4, str5, str6, str7, str8, str9)
to chciał bym aby to kompilator zrobil za mnie to:
str[0] = str0;
str[1] = str1;
str[2] = str2;
Czy jest to w ogóle możliwe?
Aby łatwiej było zrozumieć kod: var array przetrzymuje cyfry, a var str stringi. to tak jakby kontener dwuwymiarowy. kiedy np. array[4] = counter, to str[4] będzie zwrócone jako wynik tego losowania. Używam countera, ponieważ uznałem, że math.Random() jest zbyt przewidywalne w wynikach, tak więc math.Random() jest wykonywane kilkadziesiąt razy zanim, któraś ze stringów będzie wylosowana. Mam nadzieję, że zrozumiecie działanie kodu i o co mi chodzi.
Podaje część kodu:
CODE
var counter = 100;
var str = new Array(100);
var array = new Array(100);
var lotting = function(quantity, str0, str1, str2, str3, str4, str5, str6, str7, str8, str9)
{
var emptyingVar = function()
{
for(var i = 0 ; i < str.length ; i++){
str[i] = "Empty var";
}
};
var lottingEngine = function(quantityVar)
{
for(var j = 0; j < array.length ; j++){
array[j] = 0;
}
loop:
for(var i = 0 ; i < quantityVar*counter ; i++){
x = Math.floor(Math.random()*quantityVar);
for(var i0 = 0 ; i0 < quantityVar ; i0++){
if(x === i0){
array[i0]++;
}
}
for(var i1 = 0 ; i1 < quantityVar ; i1++){
if(array[i1] === counter){
return str[i1];
//break loop;
}
}
}
};
var convertingStrToStr = function()
{
str[0] = str0;
str[1] = str1;
str[2] = str2;
str[3] = str3;
str[4] = str4;
str[5] = str5;
str[6] = str6;
str[7] = str7;
str[8] = str8;
str[9] = str9;
};
emptyingVar();
convertingStrToStr();
for(var i = quantity; i < 10 ; i++){
str[i] = "Empty var";
}
var result = lottingEngine(quantity);
return result;
};
var str = new Array(100);
var array = new Array(100);
var lotting = function(quantity, str0, str1, str2, str3, str4, str5, str6, str7, str8, str9)
{
var emptyingVar = function()
{
for(var i = 0 ; i < str.length ; i++){
str[i] = "Empty var";
}
};
var lottingEngine = function(quantityVar)
{
for(var j = 0; j < array.length ; j++){
array[j] = 0;
}
loop:
for(var i = 0 ; i < quantityVar*counter ; i++){
x = Math.floor(Math.random()*quantityVar);
for(var i0 = 0 ; i0 < quantityVar ; i0++){
if(x === i0){
array[i0]++;
}
}
for(var i1 = 0 ; i1 < quantityVar ; i1++){
if(array[i1] === counter){
return str[i1];
//break loop;
}
}
}
};
var convertingStrToStr = function()
{
str[0] = str0;
str[1] = str1;
str[2] = str2;
str[3] = str3;
str[4] = str4;
str[5] = str5;
str[6] = str6;
str[7] = str7;
str[8] = str8;
str[9] = str9;
};
emptyingVar();
convertingStrToStr();
for(var i = quantity; i < 10 ; i++){
str[i] = "Empty var";
}
var result = lottingEngine(quantity);
return result;
};