Random numbers are numbers that you can't predict.
Flipping a coin or rolling dice will give you a random
number. Random numbers are very important in games
and in some kinds of Math. Computers can generate
random numbers pretty well. QBASIC's RND function provides
random numbers that we can use.
## RND
RND is a special function that gives us a random number
between 0 and 1. We can use this in games to make things
interesting. RND is perfect for rolling dice or flipping
a coin. First let's see RND in action:
CLS PRINT RND PRINT RND
This program will print RND twice. Notice that
you'll get two numbers that appear to be unpredictable
and random. But, try running the program again.
You'll get the same "random" numbers. This means your
games would always be the same each time the user
runs them. Fortunately, there's a way to fix this.
## RANDOMIZE TIMER
Using RANDOMIZE TIMER will make sure the random numbers
you get are different each time you run. Try this:
CLS RANDOMIZE TIMER PRINT RND PRINT RND
## Useful Random Numbers
Random numbers between 0 and 1 aren't really very useful.
What you will need for a game might be a random number
between 1 and 6, like when you roll dice. To get something
more useful, we'll use math. Fortunately, computers are
very good at math.
There are two problems we must solve to get the results
we want. First, the range of random numbers has to be
expanded from 0 through 1 to 1 through 6. That's easily
done like this:
CLS RANDOMIZE TIMER PRINT RND * 6 + 1 PRINT RND * 6 + 1
By multiplying by 6, we increase the range to 0 through 5.
By adding 1 we shift the range up to 1 through 6. However,
there's still a problem. All that decimal stuff. QBASIC's
INT function can be used to convert a decimal number to
an integer (a number without a decimal).
CLS RANDOMIZE TIMER PRINT INT(RND * 6 + 1) PRINT INT(RND * 6 + 1)
## Roll the Dice
Here's a program that rolls two dice and prints
the value of each. The variables Die1 and Die2 are
used to hold the values of each die before printing.
In a real game, Die1 and Die2 would be used in some
clever way to change the outcome of the game.
CLS RANDOMIZE TIMER INPUT "Press ENTER to roll dice...", A$ PRINT Die1 = INT(RND * 6 + 1) Die2 = INT(RND * 6 + 1) PRINT "Die 1: "; Die1 PRINT "Die 2: "; Die2
## PRINT By Itself
Note that in the last program there was a PRINT on
a line by itself. Did you see what it did? It simply
printed a blank line on the screen. This can be useful
for making the output from your program look nicer.
Source: http://jpsor.ucoz.com |