MISSION CONTROL (Ten Space Probes)

Cool ways to do cool things.
Post Reply
Welopez
Posts: 56
Joined: Fri Jan 07, 2005 11:16 pm
Location: Currently living in Riverside, CA
Contact:

MISSION CONTROL (Ten Space Probes)

Post by Welopez »

Just for fun, this program displays the progress of ten space probes launched to the moon, the planets, and beyond. The progress bar is green while accelerating and turns red when decelerating.

Okay, so what if we don't have space craft capable of a constant 1 Gee acceleration for days, weeks, and months on end. What if we don't have "dylithium crystals" which enable us to go faster than Warp 2? Things always change! LOL!

Code: Select all

'     * * * * SPACE PROBES * * * *
'Written by Welo, 010705
'TIMER value updates display at one second intervals (real time).
'Decrease timer at end of program for faster display.

    nomainwin

    WindowWidth = 800
    WindowHeight = 695
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)

    statictext #main.statictext1, "The Space Probes", 325, 5, 225, 30
    statictext #main.statictext2, "Destination", 15, 35, 96, 30
    statictext #main.statictext3, "% Mission Complete", 215, 35, 185, 30
    statictext #main.statictext4, "Current Velocity", 415, 35, 150, 30
    statictext #main.statictext5, "Time to Destination", 615, 35, 175, 30
    statictext #main.statictext6, "Earth's Moon", 15, 65, 150, 30
    statictext #main.statictext7, "", 215, 65, 150, 30
    statictext #main.statictext8, "", 415, 65, 150, 30
    statictext #main.statictext9, "", 615, 65, 150, 30
    graphicbox #main.g1, 15, 95, 760, 10
    statictext #main.statictext10, "Mercury", 15, 116, 150, 30
    statictext #main.statictext11, "days", 215, 116, 150, 30
    statictext #main.statictext12, "vel", 415, 116, 150, 30
    statictext #main.statictext13, "toa", 615, 116, 150, 30
    graphicbox #main.g2, 15, 146, 760, 10
    statictext #main.statictext14, "Venus", 15, 168,150, 30
    statictext #main.statictext15, "days", 215, 168, 150, 30
    statictext #main.statictext16, "vel", 415, 168, 150, 30
    statictext #main.statictext17, "toa", 615, 168, 150, 30
    graphicbox #main.g3, 15, 198, 760, 10
    statictext #main.statictext18, "Mars", 15, 219, 150, 30
    statictext #main.statictext19, "days", 215, 219, 150, 30
    statictext #main.statictext20, "vel", 415, 219, 150, 30
    statictext #main.statictext21, "toa", 615, 219, 150, 30
    graphicbox #main.g4, 15, 249, 760, 10
    statictext #main.statictext22, "Jupiter", 15, 271, 150, 30
    statictext #main.statictext23, "days", 215, 271, 150, 30
    statictext #main.statictext24, "vel", 415, 271, 150, 30
    statictext #main.statictext25, "toa", 615, 271, 150, 30
    graphicbox #main.g5, 15, 301, 760, 10
    statictext #main.statictext26, "Saturn", 15, 322, 150, 30
    statictext #main.statictext27, "days", 215, 322, 150, 30
    statictext #main.statictext28, "vel", 415, 322, 150, 30
    statictext #main.statictext29, "toa", 615, 322, 150, 30
    graphicbox #main.g6, 15, 352, 760, 10
    statictext #main.statictext30, "Uranus", 15, 373, 150, 30
    statictext #main.statictext31, "days", 215, 373, 150, 30
    statictext #main.statictext32, "vel", 415, 373, 150, 30
    statictext #main.statictext33, "toa", 615, 373, 150, 30
    graphicbox #main.g7, 15, 403, 760, 10
    statictext #main.statictext34, "Neptune", 15, 425, 150, 30
    statictext #main.statictext35, "days", 215, 425, 150, 30
    statictext #main.statictext36, "vel", 415, 425, 150, 30
    statictext #main.statictext37, "toa", 615, 425, 150, 30
    graphicbox #main.g8, 15, 455, 760, 10
    statictext #main.statictext38, "Pluto", 15, 476, 150, 30
    statictext #main.statictext39, "days", 215, 476, 150, 30
    statictext #main.statictext40, "vel", 415, 476, 150, 30
    statictext #main.statictext41, "toa", 615, 476, 150, 30
    graphicbox #main.g9, 15, 506, 760, 10
    statictext #main.statictext42, "Proxima Centauri", 15, 528, 150, 30
    statictext #main.statictext43, "days", 215, 528, 150, 30
    statictext #main.statictext44, "vel", 415, 528, 150, 30
    statictext #main.statictext45, "toa", 615, 528, 175, 30
    graphicbox #main.g10, 15, 558, 760, 10

    statictext #main.statictext46, summary$, 15, 585, 700, 30
    button #main.button1, "Launch", [start], UL, 275, 625, 90, 30
    button #main.button2, "QUIT", [quit], UL, 450, 625, 90, 30
    open "Mission to Space" for window as #main
    print #main, "trapclose [quit]"
    print #main, "font arial 0 20"

wait

[start]
                          'Constants
D1=235000                 'Miles to Moon
D2=57000000               'Miles to Mercury
D3=26000000               'Miles to Venus
D4=35000000               'Miles to Mars
D5=370000000              'Miles to Jupiter
D6=744000000              'Miles to Saturn
D7=1607000000             'Miles to Uranus
D8=2680000000             'Miles to Neptune
D9=2067000000             'Miles to Pluto
D10=(4.2*(5.87812*10^12)) 'Miles to Proxima Centauri
a=32.2                    'Accelleration at 32.2 Feet/Per Second
launchDate$=DATE$()
launchTime$=TIME$()

[update]
TIMER 0
t=t+1                     'Seconds since launch
v=(a*t)                   'Current velocity in FPS


'Moon Mission
msn1Dist=D1/2
msn1T0=SQR((msn1Dist*5280)/(a/2))  'Time for first half of trip
msn1T0=msn1T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn1)>1 THEN [moonDone]  'If mission complete, goto next mission
    IF (complmsn1)<.5 THEN
    msn1V=v  'Current velocity of moon probe in FPS
    msn1Color$=" green"

    ELSE
    msn1dec=msndec+1  'Begin deceleration counter
    vdecel1=a*msn1dec
    msn1V=(msn1V-vdecel1)  'Deceleration velocity in FPS
    msn1Color$=" red"
    END IF
    ETA1=msn1T0-(msn1T0*complmsn1)
    complmsn1=(t/msn1T0)  'Percentage of mission complete
    IF (complmsn1)>1 THEN msn1V=0: ETA1=0
    print #main.statictext7, INT(t/(msn1T0)*100)
    print #main.statictext8, INT(msn1V*.681818); " MPH"
    print #main.statictext9, INT(ETA1/60); " MIN"
    print #main.g1, "discard"
    print #main.g1, "cls"
    print #main.g1, "locate 0 0"
    print #main.g1, "backcolor "; msn1Color$
    print #main.g1, "down"
    print #main.g1, "boxfilled "; INT((t/msn1T0)*760); " 10"

[moonDone]

'Mercury Mission
msn2Dist=D2/2
msn2T0=SQR((msn2Dist*5280)/(a/2))  'Time for first half of trip
msn2T0=msn2T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn2)>1 THEN [mercDone]  'If mission complete, goto next mission
    IF (complmsn2)<.5 THEN
    msn2V=v  'Current velocity of Mercury probe in FPS
    msn2Color$=" green"

    ELSE
    msn2dec=msndec2+1  'Begin deceleration counter
    vdecel2=a*msn2dec
    msn2V=(msn2V-vdecel2)  'Deceleration velocity in FPS
    msn2Color$=" red"
    END IF

    complmsn2=(t/msn2T0)  'Percentage of mission complete
    ETA2=msn2T0-(msn2T0*complmsn2)
    IF (complmsn2)>1 THEN msn2V=0: ETA2=0
    print #main.statictext11, INT(t/(msn2T0)*100)
    print #main.statictext12, INT(msn2V*.681818); " MPH"
    print #main.statictext13, INT(ETA2/3600); " Hrs"
    print #main.g2, "discard"
    print #main.g2, "cls"
    print #main.g2, "locate 0 0"
    print #main.g2, "backcolor "; msn2Color$
    print #main.g2, "down"
    print #main.g2, "boxfilled "; INT((t/msn2T0)*760); " 10"

[mercDone]


'Venus Mission
msn3Dist=D3/2
msn3T0=SQR((msn3Dist*5280)/(a/2))  'Time for first half of trip
msn3T0=msn3T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn3)>1 THEN [venuDone]  'If mission complete, goto next mission
    IF (complmsn3)<.5 THEN
    msn3V=v  'Current velocity of Venus probe in FPS
    msn3Color$=" green"

    ELSE
    msn3dec=msndec3+1  'Begin deceleration counter
    vdecel3=a*msn3dec
    msn3V=(msn3V-vdecel3)  'Deceleration velocity in FPS
    msn3Color$=" red"
    END IF

    complmsn3=(t/msn3T0)  'Percentage of mission complete
    ETA3=msn3T0-(msn3T0*complmsn3)
    IF (complmsn3)>1 THEN msn3V=0: ETA3=0
    print #main.statictext15, INT(t/(msn3T0)*100)
    print #main.statictext16, INT(msn3V*.681818); " MPH"
    print #main.statictext17, INT(ETA3/3600); " Hrs"
    print #main.g3, "discard"
    print #main.g3, "cls"
    print #main.g3, "locate 0 0"
    print #main.g3, "backcolor "; msn3Color$
    print #main.g3, "down"
    print #main.g3, "boxfilled "; INT((t/msn3T0)*760); " 10"

[venuDone]

'Mars Mission
msn4Dist=D4/2
msn4T0=SQR((msn4Dist*5280)/(a/2))  'Time for first half of trip
msn4T0=msn4T0*2            'Time for complete trip
                           'Do calculations for display

IF (complmsn4)>1 THEN [marsDone]  'If mission complete, goto next mission
    IF (complmsn4)<.5 THEN
    msn4V=v  'Current velocity of Mars probe in FPS
    msn4Color$=" green"

    ELSE
    msn4dec=msndec4+1  'Begin deceleration counter
    vdecel4=a*msn4dec
    msn4V=(msn4V-vdecel4)  'Deceleration velocity in FPS
    msn4Color$=" red"
    END IF

    complmsn4=(t/msn4T0)  'Percentage of mission complete
    ETA4=msn4T0-(msn4T0*complmsn4)
    IF (complmsn4)>1 THEN msn4V=0: ETA4=0
    print #main.statictext19, INT(t/(msn4T0)*100)
    print #main.statictext20, INT(msn4V*.681818); " MPH"
    print #main.statictext21, INT(ETA4/3600); " Hrs"
    print #main.g4, "discard"
    print #main.g4, "cls"
    print #main.g4, "locate 0 0"
    print #main.g4, "backcolor "; msn4Color$
    print #main.g4, "down"
    print #main.g4, "boxfilled "; INT((t/msn4T0)*760); " 10"

[marsDone]

'Jupiter Mission
msn5Dist=D5/2
msn5T0=SQR((msn5Dist*5280)/(a/2))  'Time for first half of trip
msn5T0=msn5T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn5)>1 THEN [jupiDone]  'If mission complete, goto next mission
    IF (complmsn5)<.5 THEN
    msn5V=v  'Current velocity of Jupiter probe in FPS
    msn5Color$=" green"

    ELSE
    msn5dec=msndec5+1  'Begin deceleration counter
    vdecel5=a*msn5dec
    msn5V=(msn5V-vdecel5)  'Deceleration velocity in FPS
    msn5Color$=" red"
    END IF

    complmsn5=(t/msn5T0)  'Percentage of mission complete
    ETA5=msn5T0-(msn5T0*complmsn5)
    IF (complmsn5)>1 THEN msn5V=0: ETA5=0
    print #main.statictext23, INT(t/(msn5T0)*100)
    print #main.statictext24, INT(msn5V*.681818); " MPH"
    print #main.statictext25, INT(ETA5/3600); " Hrs"
    print #main.g5, "discard"
    print #main.g5, "cls"
    print #main.g5, "locate 0 0"
    print #main.g5, "backcolor "; msn5Color$
    print #main.g5, "down"
    print #main.g5, "boxfilled "; INT((t/msn5T0)*760); " 10"

[jupiDone]

'Saturn Mission
msn6Dist=D6/2
msn6T0=SQR((msn6Dist*5280)/(a/2))  'Time for first half of trip
msn6T0=msn6T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn6)>1 THEN [satuDone]  'If mission complete, goto next mission
    IF (complmsn6)<.5 THEN
    msn6V=v  'Current velocity of Saturn probe in FPS
    msn6Color$=" green"

    ELSE
    msn6dec=msndec6+1  'Begin deceleration counter
    vdecel6=a*msn6dec
    msn6V=(msn6V-vdecel6)  'Deceleration velocity in FPS
    msn6Color$=" red"
    END IF

    complmsn6=(t/msn6T0)  'Percentage of mission complete
    ETA6=msn6T0-(msn6T0*complmsn6)
IF (complmsn6)>1 THEN msn6V=0: ETA6=0
    print #main.statictext27, INT(t/(msn6T0)*100)
    print #main.statictext28, INT(msn6V*.681818); " MPH"
    print #main.statictext29, INT(ETA6/3600); " Hrs"
    print #main.g6, "discard"
    print #main.g6, "cls"
    print #main.g6, "locate 0 0"
    print #main.g6, "backcolor "; msn6Color$
    print #main.g6, "down"
    print #main.g6, "boxfilled "; INT((t/msn6T0)*760); " 10"

[satuDone]

'Uranus Mission
msn7Dist=D7/2
msn7T0=SQR((msn7Dist*5280)/(a/2))  'Time for first half of trip
msn7T0=msn7T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn7)>1 THEN [uranDone]  'If mission complete, goto next mission
    IF (complmsn7)<.5 THEN
    msn7V=v  'Current velocity of Uranus probe in FPS
    msn7Color$=" green"

    ELSE
    msn7dec=msndec7+1  'Begin deceleration counter
    vdecel7=a*msn7dec
    msn7V=(msn7V-vdecel7)  'Deceleration velocity in FPS
    msn7Color$=" red"
    END IF

    complmsn7=(t/msn7T0)  'Percentage of mission complete
    ETA7=msn7T0-(msn7T0*complmsn7)
    IF (complmsn7)>1 THEN msn7V=0: ETA7=0
    print #main.statictext31, INT(t/(msn7T0)*100)
    print #main.statictext32, INT(msn7V*.681818); " MPH"
    print #main.statictext33, INT(ETA7/3600); " Hrs"
    print #main.g7, "discard"
    print #main.g7, "cls"
    print #main.g7, "locate 0 0"
    print #main.g7, "backcolor "; msn7Color$
    print #main.g7, "down"
    print #main.g7, "boxfilled "; INT((t/msn7T0)*760); " 10"

[uranDone]

'Neptune Mission
msn8Dist=D8/2
msn8T0=SQR((msn8Dist*5280)/(a/2))  'Time for first half of trip
msn8T0=msn8T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn8)>1 THEN [neptDone]  'If mission complete, goto next mission
    IF (complmsn8)<.5 THEN
    msn8V=v  'Current velocity of Neptune probe in FPS
    msn8Color$=" green"

    ELSE
    msn8dec=msndec8+1  'Begin deceleration counter
    vdecel8=a*msn8dec
    msn8V=(msn8V-vdecel8)  'Deceleration velocity in FPS
    msn8Color$=" red"
    END IF

    complmsn8=(t/msn8T0)  'Percentage of mission complete
    ETA8=msn8T0-(msn8T0*complmsn8)
    IF (complmsn8)>1 THEN msn8V=0: ETA8=0
    print #main.statictext35, INT(t/(msn8T0)*100)
    print #main.statictext36, INT(msn8V*.681818); " MPH"
    print #main.statictext37, INT(ETA8/3600); " Hrs"
    print #main.g8, "discard"
    print #main.g8, "cls"
    print #main.g8, "locate 0 0"
    print #main.g8, "backcolor "; msn8Color$
    print #main.g8, "down"
    print #main.g8, "boxfilled "; INT((t/msn8T0)*760); " 10"

[neptDone]

'Pluto Mission
msn9Dist=D9/2
msn9T0=SQR((msn9Dist*5280)/(a/2))  'Time for first half of trip
msn9T0=msn9T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn9)>1 THEN [plutDone]  'If mission complete, goto next mission
    IF (complmsn9)<.5 THEN
    msn9V=v  'Current velocity of Pluto probe in FPS
    msn9Color$=" green"

    ELSE
    msn9dec=msndec9+1  'Begin deceleration counter
    vdecel9=a*msn9dec
    msn9V=(msn9V-vdecel9)  'Deceleration velocity in FPS
    msn9Color$=" red"
    END IF

    complmsn9=(t/msn9T0)  'Percentage of mission complete
    ETA9=msn9T0-(msn9T0*complmsn9)
    IF (complmsn9)>1 THEN msn9V=0: ETA9=0
    print #main.statictext39, INT(t/(msn9T0)*100)
    print #main.statictext40, INT(msn9V*.681818); " MPH"
    print #main.statictext41, INT(ETA9/3600); " Hrs"
    print #main.g9, "discard"
    print #main.g9, "cls"
    print #main.g9, "locate 0 0"
    print #main.g9, "backcolor "; msn9Color$
    print #main.g9, "down"
    print #main.g9, "boxfilled "; INT((t/msn9T0)*760); " 10"

[plutDone]

'Proxima Centauri Mission
msn10Dist=D10/2
msn10T0=SQR((msn10Dist*5280)/(a/2))  'Time for first half of trip
msn10T0=msn10T0*2            'Time for complete trip
                           'Do calculations for display
IF (complmsn10)>1 THEN [proxDone]  'If mission complete, goto next mission
    IF (complmsn10)<.5 THEN
    msn10V=v  'Current velocity of Proxima probe in FPS
    msn10Color$=" green"

    ELSE
    msn10dec=msndec10+1  'Begin deceleration counter
    vdecel10=a*msn10dec
    msn10V=(msn10V-vdecel10)  'Deceleration velocity in FPS
    msn10Color$=" red"
    END IF

    complmsn10=(t/msn10T0)  'Percentage of mission complete
    ETA10=msn10T0-(msn10T0*complmsn10)
    IF (complmsn10)>1 THEN msn10V=0: ETA10=0
    print #main.statictext43, INT(t/(msn10T0)*100)
    print #main.statictext44, INT(msn10V*.681818); " MPH"
    print #main.statictext45, INT(ETA10/3600); " Hrs"
    print #main.g10, "discard"
    print #main.g10, "cls"
    print #main.g10, "locate 0 0"
    print #main.g10, "backcolor "; msn10Color$
    print #main.g10, "down"
    print #main.g10, "boxfilled "; INT((t/msn10T0)*760); " 10"

[proxDone]

summary$="It has been ";INT(t/60); " minutes since the probes were launched on "; _
launchDate$; " at "; launchTime$;"."
print #main.statictext46, summary$
TIMER 1000, [update]


wait
[quit]
    close #main
    end

Attachments
SpaceProbes.zip
You are the mission commander of ten space probes simultaneously launched to the Moon, the planets, and beyond. Be sure to pack your long-johns... it can get pretty cold way out there!
(3.07 KiB) Downloaded 585 times
Post Reply