DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4fdecb4bc⟧ TextFile

    Length: 7808 (0x1e80)
    Types: TextFile
    Names: »GOLF.BAS«

Derivation

└─⟦69a509965⟧ Bits:30005211 CR8 BASIC Games
    └─ ⟦this⟧ »GOLF.BAS« 

TextFile

1 REM *** GOLF-DEC.BAS ***  DEC 10 GOLF GAME *** APR 77 ***
2 DIM L(15) 
3 PRINT 
4 PRINT "WELCOME TO THE U.C.N.W. BANGOR"; 
5 PRINT " 18 HOLE CHAMPIONSHIP";
6 PRINT 
25 PRINT
26 PRINT
30 GOSUB 2320 
40 LET X=3
50 LET N=2.1684E-20
60 LET S1=0 
61 LET S2=0 
62 LET T5=0 
70 LET F=1
80 PRINT"WHAT IS YOUR HANDICAP! ( BEGINNERS TYPE 30.):";
90 INPUT H
100 IF H>30 THEN 2180 
101 IF H<0 THEN 2180
110 IF H>9 THEN 140 
120 PRINT"HEY, THAT'S PRETTY GOOD." 
130 GOTO 160
140 IF H<20 THEN 160
150 PRINT "ANYONE FOR TENNIS!"
160 PRINT "DIFFICULTIES AT GOLF INCLUDE:" 
170 PRINT "  0=HOOK, 1=SLICE, 2=POOR DISTANCE, 4=TRAP SHOTS, 5=PUTTING" 
180 PRINT "WHICH IS YOUR WORST:"; 
190 INPUT T 
200 IF T>5 THEN 180 
201 IF T<0 THEN 180 
202 IF T=3 THEN 180 
210 FOR Z=1 TO (H+1)/(T+1)*10 
220 LET R=RND(X1) 
230 NEXT Z
240 LET J=0 
241 LET Q=0 
242 LET K=0 
243 LET L(1)=0
250 LET S2=S2+S1
260 IF F=1 THEN 400 
270 PRINT"YOUR SCORE ON HOLE";F-1;" WAS";S1;
274 IF P-S1+3>5 THEN 281
275 IF P-S1+3<1 THEN 281
276 IF P-S1+3=1 THEN 390
277 IF P-S1+3=2 THEN 390
278 IF P-S1+3=3 THEN 310
279 IF P-S1+3=4 THEN 330
280 IF P-S1+3=5 THEN 350
281 LET Z=INT((10*RND(X1))/3) 
282 IF Z<1 THEN 290 
283 IF Z>3 THEN 290 
286 IF Z=1 THEN 294 
287 IF Z=2 THEN 296 
289 IF Z=3 THEN 298 
290 PRINT"KEEP YOUR HEAD DOWN." 
293 GOTO 390
294 PRINT"EVEN JACKLIN HAS HIS BAD HOLES#"
295 GOTO 390
296 PRINT"LET'S JUST FORGET THAT HOLE#" 
297 GOTO 390
298 PRINT"I SHOULD GO BACK TO TRYING TO LAND ON THE MOON#"
299 REM 
300 GOTO 390
310 PRINT "A PAR. NICE GOING."
320 GOTO 390
330 PRINT"A BIRDIE, TOUCH OF THE OOSTY'S" 
340 GOTO 390
350 IF P=3 THEN 380 
360 PRINT "A GREAT BIG EAGLE."
370 GOTO 390
380 PRINT "A HOLE IN *O*N*E*."
390 PRINT 
395 IF F=19 THEN 2060 
400 LET S1=0
410 IF S1=0 THEN 1910 
420 IF L(1)<1 THEN 1450 
430 LET X=1 
440 IF L(1)>5 THEN 1490 
450 PRINT "SHOT WENT";D1;" YARDS - IS ";D2;" YARDS FROM HOLE" 
460 PRINT"BALL IS";INT(O);" YARDS OFF LINE IN ";
470 GOSUB 2150
480 PRINT"WHAT CLUB DO YOU WANT:";
490 INPUT C 
500 IF C<>0 THEN 700
510 FOR T6=1 TO 69
520 PRINT "-";
530 NEXT T6 
540 PRINT 
550 IF C=9 THEN 480 
560 PRINT"HERE'S YOUR BAG OF CLUBS."
565 PRINT" WOODS - FULL SWING ONLY. 1 - DRIVER."
570 PRINT"             2 - TWO WOOD." 
580 PRINT" IRONS - FULL SWING ONLY.  12 - TWO IRON."
590 PRINT"              19 - NINE IRON."
600 PRINT" IRONS - LESS THAN FULL SWING. 22 - TWO IRON."
610 PRINT"                29 - NINE IRON."
620 PRINT "WHEN YOU REACH THE GREEN IT WILL BE ASSUMED THAT YOU ARE"
630 PRINT "USING A PUTTER. THE PUTT POTENCY NO. REFERS TO THE STRENGTH" 
640 PRINT "WITH WHICH THE BALL IS PUTTED. USE NUMBERS GREATER THAN" 
650 PRINT "ZERO, INCREASING THE NUMBER FOR GREATER DISTANCE." 
660 PRINT "YOU WILL BE ASKED FOR 'PERCENT FULL SWING' ON CLUBS 22-29."
670 PRINT "THIS SHOULD BE A NUMBER FROM 1 TO 99." 
680 LET C=9 
690 GOTO 510
700 IF C<1 THEN 760 
701 IF C>29 THEN 760
710 IF C>3 THEN 780 
720 IF L(1)<5 THEN 810
721 IF C=14 THEN 810
722 IF C=23 THEN 810
730 GOTO 760
740  LET S1=S1-1
750 LET W=1 
760 GOSUB 2320
770 GOTO 480
780 IF C<12 THEN 760
790 LET C=C-6 
800 GOTO 720
810 LET S1=S1+1 
820  LET W=1
830 IF C>13 THEN 1140 
840 IF F/3=INT(F/3) THEN 1100 
850 IF C<4 THEN 870 
860 GOTO 880
870 IF L(1)=2 THEN 960
880 IF S1>7 THEN 990
890 LET D1=INT(((30-H)*3.38813E-20+187-((30-H)*-6.77626E-21+15)*C/2)+25*RND(X1)) 
900 LET D1=INT(D1*W)
910 IF T=2 THEN 1470
920 LET O=(RND(X1)/2.1684E-20)*(2*H+16)*ABS(TAN(D1*1.51788E-21))
930 LET D2=INT(SQR(O^2+ABS(D-D1)^2))
940 IF D-D1<0 THEN 1010 
950 GOTO 1030 
960 PRINT"YOU TOPPED IT." 
970 LET D1=35 
980 GOTO 920
990 IF D<200 THEN 1600
1000 GOTO 890 
1010 IF D2<20 THEN 1030 
1020 PRINT"TOO MUCH CLUB. YOU OVERSHOT THE HOLE." 
1030 LET B=D
1040 LET D=D2 
1050 IF D2>27 THEN 1270 
1060 IF D2>20 THEN 1400 
1070 IF D2>1.35525E-20 THEN 1420
1080 LET L(1)=9 
1090 GOTO 1800
1100 IF (72+((H+1)/2.30393E-20))/18<S2+Q+(10*(F-1)/18) THEN 850 
1110 LET Q=Q+1
1120 IF S1/2<>INT(S1/2) THEN 1230 
1130 GOTO 960 
1140 PRINT "PERCENT FULL SWING:"; 
1150 INPUT W
1160 LET W=W/100
1170 LET T7=0 
1175 IF W<0 THEN 1178 
1176 IF W>=1 THEN 1178
1177 GOTO 1180
1178 PRINT"TYPE A NUMBER BETWEEN 1 AND 99." 
1179 GOTO 1140
1180 IF T7<>0 THEN 1140 
1190 IF L(1)=5 THEN 1590
1200 IF C=14 THEN 880 
1210 LET C=C-10 
1220 GOTO 880 
1230 IF D<95 THEN 960 
1240 PRINT"BALL HIT TREE - BOUNCED INTO ROUGH";D-75;" YARDS FROM HOLE"
1250 LET D=D-75 
1260 GOTO 480 
1270 IF O<30 THEN 1450
1271 IF J>0 THEN 1450 
1280 IF T>0 THEN 1340 
1290 IF (S2+1)/15=INT((S2+1)/15) THEN 1350
1300 PRINT "YOU HOOKED-"; 
1310 LET L(1)=L(3)
1320 IF O>45 THEN 1380
1330 GOTO 410 
1340 IF (S2+1)/15=INT((S2+1)/15) THEN 1300
1350 PRINT "YOU SLICED-"; 
1360 LET L(1)=L(2)
1370 GOTO 1320
1380 PRINT "BADLY." 
1390 GOTO 410 
1400 LET L(1)=5 
1410 GOTO 410 
1420 LET L(1)=8 
1430 LET D2=INT(D2*3) 
1440 GOTO 1680
1450 LET L(1)=1 
1460 GOTO 410 
1470 LET D1=INT(2.30393E-20*D1) 
1480 GOTO 920 
1490 IF L(1)>6 THEN 1570
1500 PRINT "YOUR SHOT WENT INTO WATER." 
1510 LET S1=S1+1
1520 PRINT "PENALTY STROKE ASSESSED. HIT FROM PREVIOUS LOCATION." 
1530 LET J=J+1
1540 LET L(1)=1 
1550 LET D=B
1560 GOTO 480 
1570 PRINT "YOUR SHOT WENT OUT OF BOUNDS."
1580 GOTO 1510
1590 IF T=3 THEN 1620 
1600 LET D2=1+(3*INT((80/(40-H))*RND(X1)))
1610 GOTO 1680
1620 IF RND(X1)>N THEN 1660 
1630 LET N=N*1.0842E-20 
1640 PRINT"SHOT TOPPED, STILL IN TRAP." 
1650 GOTO 480 
1660 LET N=2.1684E-20 
1670 GOTO 1600
1680 PRINT"ON GREEN";D2;" FEET FROM PIN. PUTT POTENCY NUMBER:"; 
1690 INPUT I
1700 LET T7=0 
1705 IF I>=5+E-12 THEN 1710 
1706 GOSUB 2320 
1710 IF T7<>0 THEN 1680 
1720 LET S1=S1+1
1730 IF S1+1-P>(H*-3.90313E-21)+2 THEN 1800 
1740 IF K>2 THEN 1800 
1750 LET K=K+1
1760 IF T=4 THEN 1860 
1770 LET D2=D2-I*(4+2*RND(X1))+-2.03288E-20
1780 IF D2<-2 THEN 1880 
1790 IF D2>2 THEN 1830
1800 PRINT "YOU H*O*L*E*D IT" 
1810 LET F=F+1
1820 GOTO 240 
1830 PRINT"PUTT SHORT. "; 
1840 LET D2=INT(D2) 
1850 GOTO 1680
1860 LET D2=D2-I*(4+RND(X1))+1
1870 GOTO 1780
1880 PRINT"PASSED BY CUP. ";
1890 LET D2=-D2 
1900 GOTO 1840
1910 READ D,P,L(2),L(3) 
1920 PRINT"CALL IT A DAY! (1=YES, 0=NO.):"; 
1930 INPUT O
1940 IF O=1 THEN 2060 
1950 LET T5=T5+P
1955 PRINT
1960 PRINT"YOU ARE AT TEE OFF HOLE ";F;", DISTANCE";D;" YARDS PAR";P
1970 PRINT "ON YOUR RIGHT IS "; 
1980 LET X=2
1990 GOSUB 2150 
1995 LET X=3
2000 PRINT "ON YOUR LEFT IS ";
2010 GOSUB 2150 
2015 PRINT
2020 GOTO 480 
2030 DATA 361,4,4,2,389,4,3,3,206,3,4,2,500,5,7,2,408,4,2,4,359,4,6,4 
2040 DATA 424,4,4,2,388,4,4,4,196,3,7,2,400,4,7,2,560,5,7,2,132,3,2,2 
2050 DATA 357,4,4,4,294,4,2,4,475,5,2,3,375,4,4,2,180,3,6,2,550,5,6,6 
2060 PRINT"TOTAL SCORE FOR ";F-1;" HOLES WAS";S2
2070 IF S2<>T5 THEN 2100
2080 PRINT "PAR GAME" 
2090 STOP 
2100 IF S2-T5>0 THEN 2130 
2110 PRINT -(S2-T5);" UNDER PAR"
2120 STOP 
2130 PRINT S2-T5;" OVER PAR"
2140 STOP 
2150 IF L(X)<1 THEN 2160
2151 IF L(X)>6 THEN 2160
2152 IF L(X)=1 THEN 2200
2155 IF L(X)=2 THEN 2220
2156 IF L(X)=3 THEN 2240
2157 IF L(X)=4 THEN 2260
2158 IF L(X)=5 THEN 2280
2159 IF L(X)=6 THEN 2300
2160 PRINT"OUT OF BOUNDS."; 
2170 RETURN 
2180 PRINT "PGA RULES HANDICAP=0-30"
2190 GOTO 80
2200 PRINT"FAIRWAY."; 
2210 RETURN 
2220 PRINT"ROUGH."; 
2230 RETURN 
2240 PRINT"TREES."; 
2250 RETURN 
2260 PRINT"ADJACENT FAIRWAY.";
2270 RETURN 
2280 PRINT"TRAP.";
2290 RETURN 
2300 PRINT"WATER."; 
2310 RETURN 
2320 PRINT"FOR A DESCRIPTION OF CLUBS, TYPE 0 FOR CLUB NO. WHEN REQUESTED." 
2330 LET T7=9 
2340 RETURN 
2350 END
«eof»