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