Game Development Reference
In-Depth Information
Here's another way of looking at it. Let's say that the random number is 0.3378208608542148. That
would mean the code will look like this:
I]pd*_aeh\$,*//34.,42,410.-04&-,,%
Multiplied by 100, the random number will then look like this:
I]pd*_aeh\$//*34.,42,410.-04%
The decimal point is just moved two spaces to the right, giving a nice big number to work with. But
you still have the problem of those infuriating decimals to deal with! Not to worry; I]pd*_aeh comes
to the rescue by rounding the whole thing up. So the result is very satisfying:
/0
Perfect for the number guessing game! Figure 5-20 shows an example of this process in action.
I]pd*_aeh\$I]pd*n]j`ki\$%&-,,%
I]pd*_aeh\$,*//34.,42,410.-04&-,,%
I]pd*_aeh\$//*34.,42,410.-04%
/0
Figure 5-20. From useless to useful: using Math.random and
Math.ceil to help generate random whole numbers within
a specific range
You can use this same format for any range of numbers simply by changing the number that you mul-
tiply the random number by. Here are some examples:
I]pd*_aeh\$I]pd*n]j`ki\$%&-,% generates a random number between 1 and 10.
I]pd*_aeh\$I]pd*n]j`ki\$%&.3% generates a random number between 1 and 27.
I]pd*_aeh\$I]pd*n]j`ki\$%&1% generates a random number between 1 and 5.
The reason why using I]pd*_aeh starts the range of random numbers with 1 is that any number less
than 1, such as 0.23, will be rounded up to 1.That saves you from having to deal with values of 0, which
are often not useful for the ranges of numbers you'll be looking for in your games. If you do want 0 to