The Best of Creative Computing Volume 1 (published 1976)
Splat (Open a parachute at the last moment, BASIC computer game, BASIC program listing, sample run)
Another new game from Creative Computing…
SPLAT
OPEN A PRACHUTE AT THE LAST MOMENT
By John F. Yegge
Oak Ridge Associated Universities
SPLAT simulates a parachute jump in wich you try to open your parachute at the
last possible moment without going splat! You may select your own terminal
velocity or let the computer do it for you. You may also select the acceleration
due to gravity or, again, let the computer do it in which case you might wind up
on any of the eight planets (out to Neptune), the moon, or sun.
The computer then tells you the height you're jumping from and ask for the
seconds of free fall. It then divides you free fall time into eight intervals
and gives you progress reports on your way down. The computer also keeps track
of all prior jumps in the file PARACHUTE and lets you know how you compared with
previous successful jumps. You can easily convert SPLAT to your version of BASIC
by eliminating the file which keeps track of previous jumps although if you have
file capabilities, use them – the game is that much more fun!
WELCOME TO 'SPLAT' - - THE GAME THAT SIMULATES A PARACHUTE JUMP. TRY TO OPEN
YOUR CHUTE AT THE LAST POSSIBLE MOMENT WITHOUT GOING SPLAT.
SELECT YOUR OWN TERMINAL VELOCITY (YES OR NO) ? NO
OK. TERMINAL VELOCITY = 796 MI/HR
WANT TO SELECT ACCELERATION DUE TO GRAVITY (YES OR NO) ? NO
FINE. YOU'RE ON MERCURY. ACCELERATION=12.2FT/SEC/SEC
ALTITUDE = 9297 FT
TERM.VELOCITY = 1167.47 FT/SEC + −5%
ACCELERATION = 12.2 FT/SEC/SEC + −5%
SET THE TIMER FOR YOU FREEFALL.
HOW MANY SECONDS? 8
HERE WE GO.
TIME (SEC) DIST TO FALL (FT)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
0 9297
1 9290.88
2 9272.51
3 9241.89
4 9199.02
5 9143.91
6 9076.55
7 8996.94
8 8905.09
CHUTE OPEN
CONSERVATIVE AREN'T YOU? YOU RANKED ONLY 9 IN THE 14 SUCCESSFUL JUMPS BEFORE
YOURS.
DO YOU WANT TO PLAY AGAIN? YES
SELECT YOUR OWN TERMINAL VELOCITY (YES OR NO)? NO
OK. TERMINAL VELOCITY = 740 MI/HR
WANT TO SELECT ACCELERATION DUE TO GRAVITY (YES OR NO)? NO
THEN YOU'RE ON NEPTUNE. ACCELERATION=39.6FT/SEC/SEC
ALTITUDE = 5189 FT
TERM.VELOCITY = 1065.33 FT/SEC + −5%
ACCELERATION = 39.6 FT/SEC/SEC + −5%
SET THE TIMER FOR YOUR FREEFALL.
HOW MANY SECONDS? 18
HERE WE GO.
TIME (SEC) DIST TO FALL (FT)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
0 5189
2.25 5089.74
4.5 4791.95
6.75 4295.63
9 3600.78
11.25 2707.4
13.5 1615.5
15.75 325.072
16.2678 SPLAT
MAY THE ANGEL OF HEAVEN LEAD YOU INTO PARADISE
I'LL GIVE YOU ANOTHER CHANCE.
DO YOU WANT TO PLAY AGAIN? YES
30 OPEN "PARACHUTE" AS FILE 1%
40 DIM *1%, A(4000)
55 RANDOMIZE
95 PRINT "WELCOME TO ' SPLAT ' - - THE GAME THAT SIMULATES A PRACHUTE"
96 PRINT "JUMP, TRY TO OPEN YOUR CHUTE AT THE LAST POSSIBLE "
97 PRINT "MOMENT WITHOUT GOING SPLAT."
118 PRINT\PRINT\D1*0\V*0\A*0\N*0\M*0\D1*INT (9001*AND(1)+1000)
119 PRINT " SELECT YOUR OWN TERMINAL VELOCITY (YES OR NO)*J\INPUT A13"
120 IF A13 * "NO" THEN 120 ELSE IF A13 * "YES" THEN 123
121 PRINT *"YES" OR "NO" PLEASE * J\INPUT A13\GOTO 120
123 PRINT "WHAT TERMINAL VELOCITY (MI/HR)" J\INPUT V1
125 V1=V1*(5200/3600) \V*V1*((V1*AND(0))/20)=((V1*AND(0))/20) \GOTO 135
128 V1=INT (1000*AND(0))
130 PRINT "OK. TERMINAL VELOCITY * "V1"MI/HR"
131 V1=V1* (5200/3600) \V*V1+((V1*AND (0))/20)=((V1*AND(0))/20)
135 PRINT "WANT TO SELECT ACCELERATION DUE TO GRAVITY (YES OR NO)";
136 INPUT B13
140 IF B13 *"NO" THEN 150 ELSE IF B13*"YES" THEN 143
141 PRINT *"YES" OR "NO" PLEASE*J\INPUT B13\GOTO 140
143 PRINT "WHAT ACCELERATION (FT/SEC/SEC)" J\INPUT A2
145 A*A2+((A2*AND(0))/20)=((A2*AND(0))/20)\GOTO 205
150 ON INT (1*(10*AND(0))) GOTO151, 152, 153, 154, 155, 156, 157, 158, 159, 160
.
151 PRINT "FINE, YOU'RE ON MERCURY. ACCELERATION=12.2FT/SEC/SEC" \GOTO161
152 PRINT "ALRIGHT. YOU'RE ON VENUS. ACCELERATION=28.3FT/SEC/SEC" \GOTO162
153 PRINT "THEN YOU'RE ON EARTH. ACCELERATION=32.16FT/SEC/SEC" \GOTO 163
154 PRINT "FINE.YOU'RE ON THE MOON. ACCELERATION=5.15FT/SEC/SEC" \GOTO 164
155 PRINT "ALRIGHT.YOU'RE ON MARS. ACCELERATION=12.5FT/SEC/SEC" \GOTO 165
156 PRINT "THEN YOU'RE ON JUPITER. ACCELERATION=85.2FT/SEC/SEC" \GOTO 166
157 PRINT "FINE.YOU'RE ON SATURN. ACCELERATION=37.6FT/SEC/SEC" \GOTO 167
158 PRINT "ALRIGHT.YOU'RE ON URANUS. ACCELERATION=33.8FT/SEC/SEC" \GOTO 168
159 PRINT "THEN YOU'RE ON NEPTUNE. ACCELERATION=39.6FT/SEC/SEC" \GOTO 169
160 PRINT "FINE.YOU'RE ON THE SUN. ACCELERATION=896FT/SEC/SEC" \GOTO 170
161 A2*12.2\GOTO 145
162 A2*28.3\GOTO 145
163 A2*32.16\GOTO 145
164 A2*5.15\GOTO 145
165 A2*12.5\GOTO 145
166 A2*85.2\GOTO 145
167 A2*37.6\GOTO 145
168 A2*33.8\GOTO 145
169 A2*39.6\GOTO 145
170 A2*896\GOTO 145
205 PRINT
206 PRINT " ALTITUDE *"D1"FT"
207 PRINT " TERM. VELOCITY *"V1"FT/SEC + −5%"
208 PRINT " ACCELERATION *"A2""FT/SEC/SEC + −5%"
210 PRINT "SET THE TIMER FOR YOUR FREEFALL."
211 PRINT "HOW MANY SECONDS"J\INPUT T
215 PRINT "HERE WE GO."
217 PRINT
218 PRINT "TIME (SEC)", "DIST TO FALL (FT)"
219 PRINT "- - - - - - - - - -", "- - - - - - - - - - - - - - - - -"
300 FOR I=0 TO T STEP (T/8)
310 IF I>V/A GOTO 400
320 IF D<=0 GOTO 1000
340 PRINT I, D
350 NEXT I
360 GOTO 500
400 PRINT "TERMINAL VELOCITY REACHED AT T PLUS"V/A"SECONDS"
405 FOR I=I TO T STEP (T/8)
410 D=D1=((V*2/(2*A))+(V*(I=(V/A))))
420 IF D<=0 GOTO 1010
430 PRINT I, D
440 NEXT I
450 GOTO 500
500 PRINT "CHUTE OPEN"
510 K=0\K1=0
530 FOR I=1 TO 4000
550 IF A(I)=0 GOTO 620
560 K=K+1
570 IF D>=A(I) GOTO 600
580 K1=K1+1
600 NEXT I
620 A(I)=D
630 I=I-1
650 IF K=K1<=*. 1*K GOTO 700
660 IF K=K1<=*. 25*K GOTO 710
670 IF K=K1<=*. 5*K GOTO 720
680 IF K=K1<=*. 75*K GOTO 730
690 IF K=K1<=*. 9*K GOTO 740
695 GOTO 750
700 PRINT "*WOW! THAT'S SOME JUMPING. OF THE "K"SUCCESSFUL JUMPS"
701 PRINT "BEFORE YOURS, ONLY "K=K1"OPENED THEIR CHUTES LOWER THAN"
702 PRINT "YOU DID."
703 GOTO 2000
710 PRINT "PRETTY GOOD! " K"SUCCESSFUL JUMPS PRECEDED YOURS AND ONLY"
711 PRINT K=K1 "OF THEN GOT LOWER THAN YOU DID BEFORE THEIR CHUTES"
712 PRINT "NOT BAD. THERE HAVE BEEN "K"SUCCESSFUL JUMPS BEFORE YOURS."
720 PRINT "YOU HERE BEATEN OUT BY "K=K1"OF THEM." \GOTO 2000
730 PRINT "CONSERVATIVE AREN'T YOU? YOU RANKED ONLY"K=K1"IN THE"
731 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS." \GOTO 2000
740 PRINT "HUMPH; DON'T YOU HAVE ANY SPORTING BLOOD? THERE WERE"
741 PRINT K"SUCCESSFUL JUMPS BEFORE YOURS AND YOU CAME IN"K1"JUMPS"
742 PRINT "BETTER THAN THE WORST. SHAPE UP!!!" \GOTO 2000
750 PRINT "HEY! YOU PULLED THE RIP CORD MUCH TOO SOON. "K"SUCCESSFUL"
751 PRINT "JUMPS BEFORE YOURS AND YOU CAME IN NUMBER "K=K1"; GET WHIT IT;"
752 GOTO 2000
600 PRINT "REQUIESCAT IN PACE." \GOTO 1950
601 PRINT "MAY THE ANGEL OF HEAVEN LEAD YOU INTO PARADISE" \GOTO 1950
602 PRINT "REST IN PEACE" \GOTO 1950
603 PRINT "SON-OF-A-GUN" \GOTO 1950
604 PRINT "*5%&&%;$"\GOTO 1950
605 PRINT "A KICK IN THE PANTS IS A BOOST IF YOU'RE HEADED RIGHT" \GOTO 1950
606 PRINT "HMMM. SHOULD HAVE PICKED A SHORTER TIME." \GOTO 1950
607 PRINT "MUTTER. MUTTER, MUTTER." \GOTO 1950
608 PRINT "PUSHING UP DAISIES." \GOTO1950
609 PRINT "EASY COME, EASY GO." \GOTO 1950
1000 PRINT SQR (2*D1/A), "SPLAT"
1005 ON INT (1+(10*AND(0)))GOTO 800, 801, 802, 803, 804, 805, 806, 807, 808,809
1010 PRINT (V/A)+((D1=(VA2/(2*A)))/V), "SPLAT"
1020 GOTO 1005
1950 PRINT "I'LL GIVE YOU ANOTHER CHANCE." \GOTO 2000
2000 PRINT "DO YOU WANT TO PLAY AGAIN"J\INPUT Z5
2001 IF Z5*"YES" GOTO 118
2002 IF Z5*"NO" GOTO 2005
2003 PRINT "YES OR NO" \GOTO 2000
2005 PRINT "PLEASE"J\INPUT Z5\IF Z5*"YES" THEN 118 ELSE 2007
2007 PRINT "SSSSSSSSSS." \GOTO 2046
2046 CLOSE 1%
9999 END