I'm having a persistent issue with Math.random returning the same value multiple times if called in quick succession, such as when used in a loop. For example,
for (var i:int = 0; i < 10; i++) {
trace(Math.ceil(Math.rand() * 20));
}
might output a set of numbers like 4,4,3,6,6,6,6,17,17,17.
I'm guessing that the system clock is involved in the random calculation and calling the Math.random function too quickly will return the same value because the clock hasn't changed yet, but that's just a guess. Anyway, this behavior of course wreaks havoc with balance in games and I'm wondering if there is a way to get around it that I'm not aware of. Thanks for any ideas.
I should have been more clear that was a vastly oversimplified example. That code specifically (after you change rand to random, whoops) won't usually produce the same value in a row more than twice. But then I've got code (all too long to post of course) with function calls, loops, etc, generating the same number six or more times in a row in some cases.
edit: Well, in this case it was a convoluted and stupid bug, actually unrelated to the random number generation. So my bad >_< . I've had similar problems several times in the past, though they were in areas less obvious to the end user; I don't remember if or how I resolved them, so for all I know they were similarly deceptive bugs
North America
Europe, Middle East and Africa
Asia Pacific