10 WINDOW 480,240,32,16:CLS
20 CLEAR 300 : P2=0
30 PRINT TO 34;"GOLF                                                   J.WISE"
40 PRINT
50 PRINT
60 PRINT "WELCOME TO THE ICL COUNTRY CLUB"
70 PRINT "AN 18 HOLE CHAMPIONSHIP LAYOUT"
80 PRINT "LOCATED A SHORT DISTANCE FROM"
90 PRINT "SCENIC DOWNTOWN UTICA "
100 PRINT
110 G1=18
120 DIM L(4)
130 I=RND
140 IF L(4)>0 THEN GO TO 160
150 LET L(4)=48
160 G2=0 : E1=0 : P1=0 : B1=0 : P3=0
170 G3=0 : A$="          "
180 B2=0 : B3=0 : B4=0 : B5=0
190 RESTORE 
200 N=.8
210 S2=0
220 F=1
230 PRINT "WHAT IS YOUR HANDICAP (0 FOR NOVICE)";
240 INPUT !H
250 IF H>39 THEN GO TO 860
260 IF H<-9.999991 THEN GO TO 860
270 PRINT "DIFFICULTIES AT GOLF INCLUDE"
280 PRINT "0=HOOK, 1=SLICE, 2=POOR DISTANCE"
290 PRINT "3=TRAP SHOTS, 4=PUTTING"
300 PRINT "WHICH ONE IS YOUR WORST";
310 INPUT !T
320 IF T>5 THEN GO TO 270
330 S1=0
340 REMark BEGINING OF A HOLE
350 L(1)=0
360 J=0
370 REMark 
380 S2=S2+1
390 K=0
400 IF F=1 THEN GO TO 680
410 GO SUB 490
420 GO TO 520
430 REMark 
440 REMark 
450 REMark 
460 REMark 
470 REMark 
480 REMark 
490 LOCATE 23,3
500 PRINT "YOUR SCORE ON HOLE"!F-1!"WAS"!S1
510 RETurn 
520 GO SUB 2850
530 LOCATE 23,32
540 IF S1>P+3 THEN PRINT "YOU STINK "   ; : B5=B5+1 : GO TO 650
550 IF S1=P+3 THEN PRINT "A TRIPLE BOGIE"; : B4=B4+1 : GO TO 650
560 IF S1=P+2 THEN PRINT "A DOUBLE BOGIE"; : B3=B3+1 : GO TO 650
570 IF S1=P+1 THEN PRINT "A BOGIE. NOT BAD" : B2=B2+1 : GO TO 680
580 IF S1=P THEN PRINT "A PAR. NICE GOING" : P1=P1+1 : GO TO 680
590 IF S1=P-1 THEN PRINT "A BIRDIE!" : B1=B1+1 : GO TO 680
600 IF S1=P-2 THEN E1=E1+1 : GO TO 630
610 IF S1=P-3 THEN PRINT "A DOUBLE EAGLE??" : E1=E1+1 : GO TO 680
620 GO TO 680
630 IF P<>3 THEN PRINT "AN EAGLE!!!" : GO TO 680
640 PRINT "A HOLE IN ONE!!" : GO TO 680
650 PRINT ".  KEEP YOUR HEAD DOWN"
660 REMark 
670 REMark 
680 INPUT !Z$:IF Z$="Q" THEN GO TO 2960:ELSE IF F=19 THEN GO SUB 2860 : GO TO 2900
690 S3=S1
700 S1=0
710 IF  S1=0 THEN GO TO 2600
720 IF  L(1)<1 THEN GO TO 2030
730 X=1
740 IF  L(1)>5 THEN GO TO 2070
750 GO SUB 3690:REMark                   'MOVE BALL
760 LOCATE 9,60 :PRINT D2-1;:LOCATE 9,65 :PRINT "YDS. FROM CUP"
770 GO TO 1000
780 IF  L(X)=1 THEN GO TO 880
790 IF L(X)=2 THEN GO TO 900
800 IF L(X)=3 THEN GO TO 920
810 IF L(X)=4 THEN GO TO 940
820 IF L(X)=5 THEN GO TO 960
830 IF L(X)=6 THEN GO TO 980
840 PRINT "OUT OF BOUNDS"
850 GO TO 2780
860 PRINT "PGA RULES HANDICAP = 0 TO 30"
870 GO TO 230
880 PRINT "FAIRWAY"
890 GO TO 2780
900 PRINT "ROUGH"
910 GO TO 2780
920 PRINT "TREES"
930 GO TO 2780
940 PRINT "ADJACENT FAIRWAY"
950 GO TO 2780
960 PRINT "TRAP"
970 GO TO 2780
980 PRINT "WATER"
990 GO TO 2780
1000 REMark 
1010 LOCATE 12,1
1020 PRINT "YARDAGE DESIRED"; : LOCATE 12,18 :PRINT "SUGGESTED CLUBS"
1030 PRINT "280 TO 200 YDS.";:LOCATE 13,24 : PRINT "1 TO 4"
1040 PRINT "200 TO 130 YDS.";:LOCATE 14,23 : PRINT "12 TO 19"
1050 PRINT "120 TO   0 YDS.";:LOCATE 15,26 : PRINT "20"
1060 LOCATE 12,60 : PRINT "    ";
1070 LOCATE 12,35
1080 PRINT "WHAT CLUB DO YOU CHOOSE";
1090 INPUT !C
1100 LOCATE 14,35 : PRINT "                                       ";
1110 PRINT "     "
1120 IF C<1 THEN GO TO 1190
1130 IF C>20 THEN GO TO 1190
1140 IF C<5 THEN GO TO 1170
1150 IF C<12 THEN GO TO 1190
1160 LET C=C-6
1170 IF L(1)<=5 THEN GO TO 1210
1180 S1=S1-1
1190 LOCATE 14,35 : PRINT "THAT CLUB NOT IN BAG."
1200 GO TO 1000
1210 S1=S1+1
1220 W=1
1230 IF C=14 THEN GO TO 1630
1240 IF L(1)<>2 THEN GO TO 1260:REMark            'JUMP NOT IN ROUGH
1250 IF C*RND-H/40<2 THEN GO TO 1600:REMark     'DUBBED IT
1260 IF RND-H/3000<5E-2 THEN GO TO 1600
1270 IF C<4 THEN GO TO 1290
1280 GO TO 1300
1290 IF L(1)=2 THEN GO TO 1450
1300 IF S1>7 THEN GO TO 1480
1310 D1=INT(((40-H)*2.5+187-((40-H)*.25+15)*C/2)+15*RND)
1320 D1=INT(D1*W)
1340 IF T=2 THEN GO TO 2050
1350 D4=(D1*3.5E-3)
1360 D4=D4*(252 - D4)/((90-D4)*(162+D4))
1370 O=(RND/.8*(2*H+16)*ABS(D4))
1380 D3=ABS(D-D1)
1390 LET D2=INT(O*O+D3*D3)
1400 GO SUB 3000
1410 IF D-D1<0 THEN GO TO 1500
1420 GO TO 1530
1430 LET D1=5
1440 GO TO 1460
1450 LET D1=INT(100*RND)
1460 LOCATE 14,35 : PRINT "YOU DUBBED IT."
1470 GO TO 1350
1480 IF D<200 THEN GO TO 2210
1490 GO TO 1310
1500 IF D2<20 THEN GO TO 1530
1510 LOCATE 14,35
1520 PRINT "TOO MUCH CLUB. YOU'RE PAST THE HOLE."
1530 B=D
1540 D=D2
1550 IF D2>27 THEN GO TO 1770
1560 IF D2>20 THEN GO TO 1950
1570 IF D2>.5 THEN GO TO 1970
1580 L(1)=9
1590 GO TO 2470
1600 IF S1>1 THEN GO TO 1450
1610 IF RND>.5 THEN GO TO 1450
1620 GO TO 1710
1630 LOCATE 14,35 : PRINT "ADJUST DIST,(1-100%) OF SWING";
1640 INPUT !W
1650 LOCATE 14,35 : PRINT "                                   "
1660 LET W=ABS(W/100)
1670 IF W>1 THEN GO TO 1180
1680 IF 100*RND+H>95 THEN GO TO 1430
1690 IF L(1)=5 THEN GO TO 2200
1700 GO TO 1300
1710 IF  D<95 THEN GO TO 1450
1720 LOCATE 14,35 : PRINT "BALL HIT TREE-BOUNCED INTO ROUGH";
1730 LET D=D-INT(100*RND)
1740 LOCATE 9,60 : PRINT D
1750 LET L(1)=2
1760 D2=D : GO TO 750
1770 IF  O<30 THEN GO TO 2030
1780 IF J>0 THEN GO TO 2030
1790 IF T>0 THEN GO TO 1870
1800 S9=(S2+1)/15
1810 IF INT(S9)=S9 THEN GO TO 1900
1820 LOCATE 14,35
1830 PRINT "YOU HOOKED-";
1840 L(1)=L(3)
1850 IF O>45 THEN GO TO 1930
1860 GO TO 710
1870 S9=(S2+1)/15
1880 IF INT(S9)=S9 THEN GO TO 1830
1890 LOCATE 14,35
1900 PRINT "YOU SLICED- ";
1910 L(1)=L(2)
1920 GO TO 1850
1930 PRINT "BADLY."
1940 GO TO 710
1950 L(1)=5
1960 GO TO 710
1970 L(1)=8
1980 IF D2<9.600001 THEN D2=INT(D2*6) : Z$="L" : U=39 : Y$="1" : GO TO 2300
1990 IF D2>10.4 THEN D2=INT((D2-10)*6) : Z$="R" : U=39 : GO TO 2010
2000 D2=0 : GO TO 2470
2010 Y$="1" : GO TO 2300
2020 REMark 
2030 L(1)=1
2040 GO TO 710
2050 D1=INT(.85*D1)
2060 GO TO 1350
2070 IF L(1)>6 THEN GO TO 2180
2080 LOCATE 14,35
2090 PRINT "YOUR SHOT FOUND THE POND."
2100 S1=S1+1
2110 LOCATE 14,35
2120 PRINT "PENALTLY STROKE ASSESSED. HIT AGAIN"
2130 J=J+1
2140 L(1)=1
2150 D=B
2160 GO TO 1000
2170 LOCATE 14,35
2180 PRINT "YOUR SHOT WENT OUT OF BOUNDS."
2190 GO TO 2100
2200 IF T=3 THEN GO TO 2230
2210 D2=1+(3*INT((80/(40-H))*RND))
2220 GO TO 1980
2230 IF RND>N THEN GO TO 2300
2240 N=N*.2
2250 LOCATE 14,35
2260 PRINT "SHOT DUBBED, STILL IN TRAP."
2270 GO TO 1000
2280 N=.8
2290 GO TO 2210
2300 IF Y$<> "0" THEN CLS : C1=0
2310 GO SUB 3350 : GO SUB 3480
2320 LOCATE 18,1
2330 PRINT "HOW FIRM OF PUTTING STROKE 1-13";
2340 INPUT !I
2350 LOCATE 18,34 : PRINT "    "
2360 P2=P2+1
2370 LOCATE 17,39 : PRINT "                        "
2380 IF I<=0 THEN GO TO 2320
2390 IF I>13  THEN GO TO 2320
2400 S1=S1+1
2410 IF D2=0 THEN GO TO 2470
2420 K=K+1
2430 IF T=4 THEN GO TO 2560
2440 C1=I*(4+2*RND)+2.5
2450 IF D2-C1<-2 THEN GO TO 2580
2460 IF D2-C1>2 THEN GO TO 2530
2470 LOCATE 20,1 : PRINT "YOU HOLED IT"
2480 PRINT
2490 F=F+1
2500 IF P2=1 THEN P3=P3+1
2510 P2=0
2520 GO TO 350
2530 LOCATE 17,40 : PRINT "PUTT SHORT"
2540 C1=INT(C1)
2550 GO TO 2310
2560 C1=I*(4+RND)+1.5
2570 GO TO 2450
2580 LOCATE 17,40 : PRINT "PASSED BY CUP"
2590 GO TO 2540
2600 READ D,P,L(2),L(3)
2610 CLS
2620 S1=S3
2630 LOCATE 5,1 : PRINT "HOLE #";F:LOCATE 6,1:PRINT "YDS";:LOCATE 6,6:PRINT D
2640 LOCATE 7,1 : PRINT "PAR"; : LOCATE 7,8 : PRINT P
2650 IF F<>1 THEN GO SUB 490 : GO SUB 2860 : GO TO 2660
2660 GO SUB 3140 : GO SUB 3830
2670 S1=0
2680 G3=G3+P
2690 LOCATE 9,1
2700 PRINT "ON YOUR RIGHT IS ";
2710 X=2
2720 GO SUB 780
2730 LOCATE 10,1
2740 PRINT "ON YOUR LEFT IS ";
2750 X=3
2760 GO SUB  780
2770 GO TO 1000
2780 RETurn 
2790 DATA 361,4,4,2,389,4,3,3,206,3,4,2,500,5,7,2
2800 DATA 408,4,2,4,359,4,6,4,424,4,4,2,388,4,4,4
2810 DATA 196,3,7,2,400,4,7,2,560,5,7,2,132,3,2,2
2820 DATA 357,4,4,4,294,4,2,4,475,5,2,3,375,4,4,2
2830 DATA 180,3,6,2,550,5,6,6
2840 REMark 
2850 G2=G2+S1
2860 GO SUB 3100
2870 LOCATE 24,3:PRINT "TOTAL"!G2!:LOCATE 24,14:IF G4<>0 THEN PRINT G4;
2880 LOCATE 24,18 : PRINT B$; : PRINT " PAR";
2890 RETurn 
2900 CLS : GO SUB 490 : GO SUB 2860 : GO SUB 3830
2910 IF G2>=L(4) THEN GO TO 2950
2920 LET L(4)=G2 : G3=L(4)
2930 LOCATE 11,35 : PRINT "NEW COURSE RECORD"!G2
2940 LOCATE 12,35 : PRINT "OLD COURSE RECORD"!G3
2950 LOCATE 13,35 : PRINT "COURSE RECORD IS"!L(4)
2960 LOCATE 13,60 : PRINT "PLAY AGAIN  Y/N";
2970 INPUT !S$ : K$=" "
2980 IF S$="Y" THEN GO TO 10
2990 STOP
3000 LET Q1=0
3010 LET Q=1
3020 FOR S=3 TO D2 STEP 2
3030 LET Q=Q+1
3040 LET Q1=Q1+S
3050 IF Q1<D2 THEN GO TO 3080
3060 LET D2=Q
3070 LET S=1E9
3080 NEXT S
3090 RETurn 
3100 IF G3=G2 THEN B$="EVEN "
3110 IF G3>G2 THEN B$="UNDER"
3120 IF G3<G2 THEN B$="OVER "
3130 G4=ABS(G3-G2) : RETurn 
3140 REMark BUILD FAIRWAY
3150 D7=0  : D8=14 : D9=0
3160 FOR I=15 TO 75 STEP  5
3170     LOCATE 7,I : PRINT ".....";
3180 NEXT I
3190 A=100 : E=23 : G=73
3200 FOR I=E TO G STEP 10
3210     LOCATE 2,I : PRINT A;
3220 A=A+100
3230 NEXT I
3240 IF G=68 THEN GO TO 3270
3250 A=150 : E=28 : G=68
3260 GO TO 3200
3270 FOR I=15 TO 75 STEP 5
3280     LOCATE 3,I : PRINT "....!";
3290 NEXT I
3300 LOCATE 5,14 : PRINT "O"
3310 D5=INT((D+5)/10)+14
3320 LOCATE 5,D5 : PRINT "P"
3330 RETurn 
3340 REMark 
3350 LOCATE 2,1 : PRINT "ON THE GREEN"
3360 LOCATE 2,20
3370 PRINT "***************************************"
3380 FOR I=1 TO 9
3390     PRINT TO 19;"*";TO 57;"*"
3400 NEXT I
3410 LOCATE 8,20
3420 PRINT "*54.45..33..21..9..0..9..18..30..42.51*"
3430 LOCATE 12,20
3440 PRINT "***************************************"
3450 LOCATE 7,21 : PRINT "..................P.................."
3460 RETurn 
3470 REMark 
3480 IF Y$="1" THEN GO TO 3650:REMark              'FIRST TIME ON GREEN
3490 LOCATE 7,U : PRINT ".";
3500 D6=INT(C1/3+.5):REMark                  'SET TAB
3510 IF C1>D2 THEN GO TO 3610:REMark              'PASS THE CUP?
3520 IF Z$="R" THEN GO TO 3580:REMark             'RIGHT OF CUP?
3530 U=U+D6:REMark                          'MOVE IT RIGHT
3540 LOCATE 7,U : PRINT "O":REMark           'DISPLAY
3550 D2=ABS(D2-C1)
3560 LOCATE 10,40:PRINT D2;:LOCATE 10,43:PRINT "FEET FROM CUP"
3570 RETurn 
3580 U=U-D6:REMark                         'MOVE IT LEFT
3590 GO TO 3540
3600 REMark 
3610 D6=INT((C1-D2)/3+.5) : U=39:REMark       'PASSED CUP TAB
3620 IF Z$="L" THEN Z$="R" : GO TO 3530:REMark   'REVERSE SIDE
3630 Z$="L" : GO TO 3580
3640 REMark 
3650 D6=INT(D2/3+.5) : Y$="0"
3660 IF Z$="L" THEN GO TO 3580
3670 GO TO 3530
3680 REMark 
3690 LOCATE 5,D8 : PRINT " ";
3700 D7=INT((D1+5)/10)
3710 D9=D8+D7
3720 FOR I=D8 TO  D9
3730     LOCATE 5,I : PRINT " ";
3740     LOCATE 5,I+1 : PRINT "O";
3750     LOCATE 5,D5 : PRINT "P";
3760     FOR J=1 TO 20
3770     NEXT J
3780     BEEP 2000,20
3790 NEXT I
3800 D8=D9
3810 RETurn 
3820 REMark 
3830 LOCATE 16,35 : PRINT "EAGLES  BIRDIES  PARS   ONE PUTTS";
3840 LOCATE 19,35 : PRINT "BOGIES  DBL BOGIES  TPL BOGIES";
3850 LOCATE 19,68 : PRINT "PEEYOUS";
3860 LOCATE 17,37:PRINT E1;:LOCATE 17,46:PRINT B1;:LOCATE 17,53:PRINT P1;
3870 LOCATE 17,64 : PRINT P3;
3880 LOCATE 20,37:PRINT B2;:LOCATE 20,47:PRINT B3;:LOCATE 20,59:PRINT B4;
3890 LOCATE 20,71 : PRINT B5
3900 RETurn 
3910 REMark VARIABLES
3920 REMark G2=TOTAL SCORE          G3=COURSE PAR
3930 REMark H=HANDICAP              T=SELECTED DIFFICULTY
3940 DEFine PROCedure LOCATE(X,y):AT X-1,y-1:END DEFine 
