Volledige versie bekijken : Math.random() zonder dat ene getal
ninetynine
%Europe/Berlin %754 %2005, 19:06
Het is niet mogelijk zeker om een random getal te laten genereren zonder x?
Math.ceil(Math.random()*10)
bv zonder 4 ofzo?
Op welke manier moet ik dit oplossen ?
Dauntless
%Europe/Berlin %757 %2005, 19:11
var myRandom:Number = Math.ceil(Math.random()*10)
while(myRandom == 4){
myRandom = Math.ceil(Math.random()*10);
}
Zal zo moeten vrees ik... Als je het statisch wil kan je alle waarden in een array proppen dmv een for loop en de 4 overslagen. Dan gewoon een random getal uit de array nemen.
BlijBlauw
%Europe/Berlin %758 %2005, 19:11
do {
var getal = Math.ceil(Math.random()*10);
} while (getal == 4);
trace(getal);
EDIT: net te laat :)
Roenes
%Europe/Berlin %763 %2005, 19:19
do..while is in dit geval netter omdat je niet 2x dezelfde statement hebt staan in code :) Maar beide voorbeelden werken goed :)
ninetynine
%Europe/Berlin %764 %2005, 19:21
thnx , is wel jammer dat je het niet gewoon kunt in
flash 8
Math.ceil(Math.random()*10;x)
met x de waarde die hij niet mag gebruiken :)
is msschn een idee voor flash 9 ;)
BlijBlauw
%Europe/Berlin %765 %2005, 19:22
haha ja, introduceer het bij MacroMedia ;) er zijn zo veel dingen "die wel handig zouden zijn" ;)
Roenes
%Europe/Berlin %769 %2005, 19:27
Het zou handig zijn, maar je voorbeeldje slaat nergens op houston ;)
Je zet nu de x in de Math.ceil waardoor die nix met random te maken heeft ;) Het zou alleen nut hebben als we weer terug gaan naar het gebruik van random op deze manier: random(10);
Ze zouden een methode random kunnen maken met de volgende definitie:
random(int low, int high, int excluded)
of iets in die richting. Maar dat kun je zelf schrijven in een AS class waarbij je de Math class extend :)
BlijBlauw
%Europe/Berlin %774 %2005, 19:34
of iets in die richting. Maar dat kun je zelf schrijven in een AS class waarbij je de Math class extend
Of gewoon een functie maken
Laiverd
%Europe/Berlin %781 %2005, 19:45
Hiermee kan het ook:
function excludeRandom(num) {
t = Math.floor(Math.random() * 10);
if (t != num) {
return t;
} else {
excludeRandom(num);
}
}
Is voor verbetering vatbaar, maar goed. Bijgevoegd een voorbeeld-fla. Wie de 'undefined' kan oplossen; ik hou me aanbevolen ;)
O ja, dat tekstveldje waar '5' in staat, had natuurlijk een input veldje moeten zijn.
John
Dauntless
%Europe/Berlin %784 %2005, 19:49
U zei?
function excludeRandom(num) {
t = Math.floor(Math.random()*10);
if (t != num) {
return t;
} else {
return excludeRandom(num);
}
}
random_mc.onPress = function() {
e = Number(exclude_txt.text);
_root.onEnterFrame = function() {
output_txt.text += excludeRandom(e)+"-";
};
};
random_mc.onRelease = function() {
delete _root.onEnterFrame;
};
Ook wel logisch ;)
Laiverd
%Europe/Berlin %786 %2005, 19:52
?? Bedankt voor het copy pasten van het script ;) , maar had je er een bedoeling mee?
Dauntless
%Europe/Berlin %786 %2005, 19:52
Euhm, dat je geen undefined meer hebt met die van mij ? :D
("die van mij" = jouw versie waar ik een aanpassing aan heb gedaan)
Laiverd
%Europe/Berlin %791 %2005, 19:59
Ah, nu zie ik 'm ;) Thanks.
Bijgewerkte file hieronder:
John
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.