Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Pascal programming questions

  1. Jul 14, 2003 #1
    Problem 1:
    I learned the basics of Pascals and i decided to make a summer project of makeing an rpg like game. i was throwing down my ideas and i wanted the fight sequences to come up randomly when your walking around...i searched but i couldent find a command to pick a number at randome
    number 1: i need to know if one of these commands exist
    Number 2: if one doset exits i would like to ask for an idea or two how to make a randome like sequence so it isent ever 10 movements a fight sequence starts

    This is the first problem i ran into so far but i am sure i will have others
  2. jcsd
  3. Jul 14, 2003 #2
    store an integer variable "seed" and have a function rand that does "(a * seed + b ) mod c. a, b, and c are constants you pick. when you start the game set seed to some other number than it was the last time you started the game or else you get the same random numbers every time you run the program. You can set the seed with a value you get from the system clock.
  4. Jul 15, 2003 #3
    Use randomize...it initializes the random number generator using as seed the timer...to get a random number use random,which gives you a number in [0,1)...use the "Help"...
  5. Jul 15, 2003 #4
    ok i was looking though help which dident really help becuase it only told how to intiate a randome # gen i want to know how to alter it so there are only a few numbers so i can set a command to excute evrytime it lands on a certian number

    if you could help me out i would really apreciate (i cant spell) it
    Last edited: Jul 15, 2003
  6. Jul 15, 2003 #5
    I never used Pascal but if it has “Do Loops”, you can do something like this:

    Let’s assume you only want numbers from 1 through 9 as the result.

    The output random number may be a large number.

    Let R= result of the random number generator.

    Do while R>10

    Whatever R was, it will be divided by 10 until it is less than 10

    You may need to convert it to an integer, dependng on how you write your code.
  7. Jul 16, 2003 #6
    thanks everyone i was able to get it under 10 and be a single digit.

    If any one cares here is the code
    ran := randome
    if ran >= 10 then
    ran :=ran/2;
    untile ran < 10;
    ran2 := ran1[13];

    unless i spelt something wrong this should give u a randome inter get >0 and <10
    the 13 is bold becuase i needed to change the 2 to a 3, when teststing with a 2 there i found that only the digits 1,2 and 3 came up. therer are only 13 usable digits out of the 16 chars you will have to do a trial and error type test and put in diffrent nubmers where the [13]; is

    well thanks everyone!
    Last edited: Jul 16, 2003
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook