Trip into the future

File:Einstein 1921 by F Schmutzer.jpg
Einstein would have played this game (if he had a computer)

Here is the third installment of games from Usborne's Computer Space Games, translated into modern BASIC.

Trip into the future is a game about special relativity; a thought experiment that Einstein himself would recognise.  Imagine that you are able to travel in a spaceship at nearly the speed of light.  According to special relativity, time runs slower for you inside the spaceship than it does for the rest of us on Earth.  In this game you must arrive back on Earth after a certain number of years have elapsed by choosing a speed and distance to travel.  Remember, your journey will be shorter than the time as measured on Earth!

      rem A Trip into the Future
      rem By Daniel Isaaman and Jenny Tyler
      rem Translated to BB4Win by Tim Street
      *font Courier New, 20
      target% = 5 : rem margin for error
        print "Trip into the future"
        rem time in years which must elapse before you return
        trip% = rnd(100)+25   : rem (on Earth)
        rem display instructions
        print "You wish to return "str$(trip%)
        print"years into the future."'
        print"Enter speed of your ship as a"
        print"fraction of the speed of light."'
        rem get user input
        rem enter speed of ship
          input "Speed (0.00 < v < 1.00) : " vel
        until vel>0 and vel<1
        input "Distance of trip : " dist
        rem time elapsed at this speed as measured
        rem inside the spaceship
        t1 = dist / vel
        rem time elapsed at this speed as measured
        rem on Earth
        t2 = t1 / (sqr(1-vel^2))
        rem display results
        print''"You took "str$(t1)" years"
        print"and arrived "str$(t2)" years in the future."
        if t1 > 70 then
          print '"You died of old age on the way!"
          rem check whether the time taken (on Earth)
          rem is close to the target
          if abs(trip% - t2)<= target% then
            print '"You arrived within "str$(target%)" years."
            print  "CONGRATULATIONS!"
            print '"Not even close!"
        print''"(Press any key to go again...)"'
        g% = get
      until false