home *** CD-ROM | disk | FTP | other *** search
- 10 REM ****************************
- 20 REM *** ***
- 30 REM ** MINIATURE GOLF V.2 **
- 40 REM *** ***
- 50 REM ****************************
- 60 REM IDEA CONCEIVED AND WRITTEN
- 70 REM BY WVMIKE. V.2 AS MODIFIED
- 80 REM AND ENHANCED BY B29GUNNER.
- 90 REM MORE ENHANCEMENTS PLANNED.
- 100 :
- 110 S=54272:P1U=S+1:W1U=S+3:F1W=S+4:A1D=S+5:S1R=S+6:P2L=S+7
- 120 U2P=S+8:L2W=S+9:P2U=S+10:F2W=S+11:A2D=S+12:S2R=S+13
- 130 :
- 140 VOL=S+24
- 150 REM ^^^ STANDARD SID ASDDRESSES ^^^
- 160 :
- 170 GOSUB230:REM INSTRUCTIONS
- 180 GOSUB850:REM SETUP
- 190 GOSUB2770:REM PLAY!
- 200 GOTO3790:REM !END!
- 210 END
- 220 :
- 230 :
- 240 :REM *** INSTS ***
- 250 :
- 260 POKE53281,15:POKE53280,15
- 270 INPUT"[147][144]DO YOU NEED INSTRUCTIONS (Y/N):";YN$
- 280 IFYN$="N"THENPRINT"PLEASE WAIT...":RETURN
- 290 IFYN$<>"Y"THEN270
- 300 PRINT"[147][144]"TAB(8)"*** MINIATURE GOLF ***"
- 310 PRINT:PRINT
- 320 PRINT"WELCOME TO THE ALBERTS COUNTRY CLUB. THIS BEAUTIFUL NINE-HOLE ";
- 330 PRINT"MINIATURE GOLF COURSE IS OPEN AND WAITING FOR YOU !"
- 340 PRINT
- 350 PRINT"YOU SHOULD KNOW THE RULES OF THE COURSE BEFORE YOU BEGIN PLAY !"
- 360 PRINT
- 370 PRINT"TO PUTT THE BALL,YOU HAVE TO INPUT WHICH WAY YOU WANT TO ";
- 380 PRINT"AIM IT."
- 390 PRINT"THERE ARE 8 DIRECTIONS WITH THE BALL ASSUMED AT * (SEE BELOW):
- 400 [153]:[153][163]17)"2 1 8":[153][163]17)"3 * 7":[153][163]17)"4 5 6"
- 410 [153]:[153]:[153]"PRESS RETURN WHEN READY TO CONTINUE"
- 420 [161]X$:[139]X$[179][177][199](13)[167]420
- 430 [153]"LOAD"
- 440 [153][163]9)"*** MINIATURE GOLF ***
- 450 PRINT:PRINT
- 460 PRINT"THEN YOU MUST INPUT HOW HARD TO HIT THE BALL. THE SPEED SHOULD ";
- 470 PRINT"BE SOME NUMBER BETWEEN 0.00 AND 5.00. FOR EXAMPLE, YOUCOULD";
- 480 PRINT" HIT THE BALL A RELATIVE SPEED OF 3.2"
- 490 PRINT
- 500 PRINT"IT WILL TAKE A FEW TRIES BEFORE YOU GET USED TO HOW HARD TO PUTT ";
- 510 PRINT"THE BALL.":PRINT
- 520 PRINT"ALSO, THERE ARE FOUR TYPES OF HAZARDS ONTHE COURSE. YOU SHOULD ";
- 530 PRINT"BE AWARE OF WHATTHEY ARE AND WHAT AFFECT THEY HAVE ON YOU ";
- 540 PRINT"AND YOUR BALL."
- 550 PRINT:PRINT:PRINT:PRINT"PRESS RETURN WHEN READY TO CONTINUE"
- 560 GETX$:IFX$<>CHR$(13)THEN560
- 570 PRINT"[147]"
- 580 PRINTTAB(9)"*** MINIATURE GOLF ***
- 590 [153]:[153]
- 600 [153]"BLOCKS: THESE ARE LIKE WALLS. YOU MUST PUTT AROUND THEM."
- 610 [153]
- 620 [153]"YELLOW TRAPS REPRESENT SAND. YOUR BALL CANNOT PENETRATE THROUGH ";
- 630 [153]"A SAND TRAP. THE PENALTY FOR LANDING IN THE SAND IS ONE STROKE."
- 640 [153]
- 650 [153]"WATER: LIKE SAND, THESE BLUE HAZARDS WILL STOP YOUR BALL.";
- 660 [153]" THE PENALTY FOR LANDING IN WATER IS ONE STROKE."
- 670 [153]
- 680 [153]"UNEVEN SURFACES: THESE RED HAZARDS CAUSETHE BALL TO ROLL IN ";
- 690 [153]"A DIRECTION WHICH ISUNPREDICTABLE THERE IS NO PENALTY ";
- 700 [153]"FORHITTING THIS HAZARD."
- 710 [153]:[153]:[153]"PRESS RETURN WHEN READY TO CONTINUE"
- 720 [161]X$:[139]X$[179][177][199](13)[167]720
- 730 [153]"LOADPRINT#"
- 740 [153][163]9)"*** MINIATURE GOLF ***
- 750 PRINT:PRINT
- 760 PRINT"[144]YOU ARE TRYING TO SINK THE BALL IN AS FEW TRIES AS POSSIBLE. ";
- 770 PRINT"THE HOLE IS THE BLACK SQUARE."
- 780 PRINT
- 790 PRINT"[144]IF YOU HIT THE BALL TOO HARD, IT WILL JUMP OVER THE HOLE AND ";
- 800 PRINT"CONTINUE ROLLING.IT MAY ALSO CHANGE DIRECTION, SO BE SURETO HIT ";
- 810 PRINT"THE BALL JUST HARD ENOUGH."
- 820 PRINT:PRINT:PRINT"PRESS RETURN WHEN READY TO CONTINUE"
- 830 GETX$:IFX$<>CHR$(13)THEN830
- 840 RETURN
- 850 :
- 860 :REM *** SETUP ***
- 870 :
- 880 REM STORE FANFARE NOTES
- 890 DIM YY(12),ZZ(12)
- 900 FORI=1TO12:READYY(I),ZZ(I):NEXTI
- 910 DATA 25,30,18,209,33,135,25,30,42,62,31,165,50,60,37,162,42,62,31,165
- 920 DATA 50,60,37,162
- 930 DIMHA(9,5):FORI=1TO9:FORJ=1TO5:READHA(I,J):NEXT:NEXT
- 940 DATA 0,0,0,0,2
- 950 DATA 1,0,0,0,3
- 960 DATA 0,1,0,0,3
- 970 DATA 1,1,0,0,3
- 980 DATA 0,0,0,1,3
- 990 DATA 0,0,1,1,3
- 1000 DATA 1,0,1,0,3
- 1010 DATA 0,1,1,0,4
- 1020 DATA 0,0,1,1,3
- 1030 DIMDI(8,2):FORI=1TO8:READDI(I,1),DI(I,2):NEXT
- 1040 DATA 0,-1,-1,-1,-1,0,-1,1,0,1,1,1,1,0,1,-1
- 1050 PLT=49152:FORI=0TO24:READC:POKEPLT+I,C:NEXTI
- 1060 DATA 32,16,192,132
- 1070 DATA 253,32,16,192
- 1080 DATA 152,170,164,253
- 1090 DATA 24,76,240,255
- 1100 DATA 32,253,174,32
- 1110 DATA 158,173,76,170,177
- 1120 DIMV(8):FORI=1TO8:READV(I):NEXT:DATA-40,-41,-1,39,40,41,1,-39
- 1130 DEF FNSC(X)=PEEK(1024+BX+40*BY+X)
- 1140 DEF FNCO(X)=PEEK(55296+BX+40*BY+X)AND15
- 1150 RETURN
- 1160 REM *** HOLE 1 ***
- 1170 PRINT"":TS=0
- 1180 PRINTTAB(10)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1190 FORI=1TO15
- 1200 PRINTTAB(10)"[161] [146][144][161]"
- 1210 NEXT
- 1220 PRINTTAB(10)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1230 PRINT""TAB(19)" "
- 1240 BY=16:BX=11+INT(17*RND(0)):SYSPLT,BX,BY:PRINT"[209]";
- 1250 RETURN
- 1260 REM *** HOLE 2 ***
- 1270 PRINT"":TS=0
- 1280 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1290 FORI=1TO5
- 1300 PRINTTAB(8)"[161] [146][144][161]"
- 1310 NEXT
- 1320 PRINTTAB(8)"[161] [144][172][162][162][162][162][162][162][162][162][162][146][190]"
- 1330 PRINTTAB(8)"[161] [146][144][161]"
- 1340 PRINTTAB(8)"[161] [146][144][161]"
- 1350 PRINTTAB(8)"[161] [146][144][161]"
- 1360 PRINTTAB(8)"[161] [146][144][161]"
- 1370 FORI=1TO6
- 1380 PRINTTAB(8)"[161] [146][144][161]"
- 1390 NEXT
- 1400 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1410 BY=17:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]";
- 1420 PRINT""TAB(30)"[144] "
- 1430 RETURN
- 1440 REM *** HOLE 3 ***
- 1450 PRINT"":TS=0
- 1460 PRINTTAB(20)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1470 FORI=1TO5
- 1480 PRINTTAB(20)"[161] [146][144][161]"
- 1490 NEXT
- 1500 PRINTTAB(8)"[146][172][162][162][162][162][162][162][162][162][162][162][162][190] [146][144][161]"
- 1510 PRINTTAB(8)"[161] [146][144][161]"
- 1520 PRINTTAB(8)"[161] [158] [146][144][161]"
- 1530 PRINTTAB(8)"[161] [158] [146][144][161]"
- 1540 PRINTTAB(8)"[161] [158] [146][144][161]"
- 1550 PRINTTAB(8)"[161] [158] [146][144][161]"
- 1560 PRINTTAB(8)"[161] [144][172][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1570 FORI=1TO4
- 1580 PRINTTAB(8)"[161] [146][144][161]"
- 1590 NEXT
- 1600 PRINTTAB(8)"[146][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1610 PRINT""TAB(32)"[144] "
- 1620 BY=17:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 1630 RETURN
- 1640 REM *** HOLE 4 ***
- 1650 PRINT"":TS=0
- 1660 PRINTTAB(7)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1670 FORI=1TO6
- 1680 PRINTTAB(7)"[161] [146][144][161]"
- 1690 NEXT
- 1700 PRINTTAB(7)"[161] [144][172][162][162][162][162][162][162][162][162][162][187][146] [146][144][161]"
- 1710 FORI=1TO4
- 1720 PRINTTAB(7)"[161] [144][146][161] [161] [146][144][161]"
- 1730 NEXT
- 1740 PRINTTAB(7)"[161] [144][188][146][162][162][162][187] [188][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1750 FORI=1TO3
- 1760 PRINTTAB(7)"[161] [144][146][161]"
- 1770 NEXT
- 1780 PRINTTAB(7)"[188][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1790 PRINT""TAB(18)"[158] [157][157][157][157][157][157] [157][157][157][157]"
- 1800 PRINTTAB(25)"[157][157][157] [157][157][157][157][157] [157][157] "
- 1810 SYSPLT,32,11:PRINT"[144] "
- 1820 BY=16:BX=8+INT(10*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 1830 RETURN
- 1840 REM *** HOLE 5 ***
- 1850 PRINT""
- 1860 PRINT"":TS=0
- 1870 PRINTTAB(10)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1880 FORI=1TO15
- 1890 PRINTTAB(10)"[161] [146][144][161]"
- 1900 NEXT
- 1910 PRINTTAB(10)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 1920 SYSPLT,19,6:PRINT"[173][195][195][195][195][195][189]"
- 1930 SYSPLT,22,4:PRINT"[144] "
- 1940 BY=16:BX=11+INT(23*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 1950 RETURN
- 1960 REM *** HOLE 6 ***
- 1970 PRINT"":TS=0
- 1980 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 1990 FORI=1TO7
- 2000 PRINTTAB(8)"[161] [146][144][161]"
- 2010 NEXT
- 2020 PRINTTAB(8)"[161] [144][172][162][162][162][162][162][162][162][162][162][146][190]"
- 2030 FORI=1TO7
- 2040 PRINTTAB(8)"[161] [146][144][161]"
- 2050 NEXT
- 2060 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 2070 SYSPLT,27,4:PRINT"[176][157][194][157][173]"
- 2080 SYSPLT,20,5:PRINT" [157][157][157][157][157][157] [157][157][157][157][157] [157][157] "
- 2090 SYSPLT,30,5:PRINT"[144] "
- 2100 BY=16:BX=9+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 2110 RETURN
- 2120 REM *** HOLE 7 ***
- 2130 PRINT"":TS=0
- 2140 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 2150 FORI=1TO4
- 2160 PRINTTAB(8)"[161] [146][144][161]"
- 2170 NEXT
- 2180 PRINTTAB(8)"[161] [144][188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 2190 FORI=1TO4
- 2200 PRINTTAB(8)"[161] [144][146][161]"
- 2210 NEXT
- 2220 PRINTTAB(8)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187] [144][146][161]"
- 2230 FORI=1TO5
- 2240 PRINTTAB(24)"[144][161] [144][146][161]"
- 2250 NEXT
- 2260 PRINTTAB(24)"[144][188][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 2270 SYSPLT,9,7:PRINT" [157][157][157][157] [157][157][157][157] [157][157][157][157][157] "
- 2280 SYSPLT,27,8:PRINT" [157][157][157][157][157][157] [157][157][157][157][157][157] [157][157][157][157][157][157][157] "
- 2290 SYSPLT,13,4:PRINT"[144] "
- 2300 BY=16:BX=25+INT(13*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 2310 RETURN
- 2320 REM *** HOLE 8 ***
- 2330 PRINT"":TS=0
- 2340 PRINTTAB(7)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 2350 FORI=1TO6
- 2360 PRINTTAB(7)"[161] [146][144][161]"
- 2370 NEXT
- 2380 PRINTTAB(7)"[161] [144][172][162][162][162][162][162][162][162][187] [146][144][161]"
- 2390 FORI=1TO4
- 2400 PRINTTAB(7)"[161] [144][146][161] [161] [146][144][161]"
- 2410 NEXT
- 2420 PRINTTAB(7)"[188][162][162][162][162][162][162][162][162][162][162][146][190] [161] [144][146][161]"
- 2430 FORI=1TO3
- 2440 PRINTTAB(26)"[161] [144][146][161]"
- 2450 NEXT
- 2460 PRINTTAB(26)"[188][162][162][162][162][162][162][162][162][162][162][146][190]"
- 2470 SYSPLT,28,3:PRINT" "
- 2480 SYSPLT,29,4:PRINT" "
- 2490 SYSPLT,30,5:PRINT" "
- 2500 SYSPLT,30,6:PRINT" "
- 2510 SYSPLT,32,7:PRINT" "
- 2520 SYSPLT,33,8:PRINT" "
- 2530 SYSPLT,13,3:PRINT"[158] [157][157][157][157] [157][157][157][157][157] [157][157][157][157] "
- 2540 SYSPLT,13,10:PRINT"[144] "
- 2550 BY=16:BX=27+INT(10*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 2560 RETURN
- 2570 REM *** HOLE 9 ***
- 2580 PRINT"":TS=0
- 2590 PRINTTAB(8)"[144][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
- 2600 FORI=1TO9
- 2610 PRINTTAB(8)"[161] [146][144][161]"
- 2620 NEXT
- 2630 PRINTTAB(8)"[188][162][162][162][162][162][162][162][162][162][162][162][187] [146][144][161]"
- 2640 FORI=1TO5
- 2650 PRINTTAB(20)"[161] [146][144][161]"
- 2660 NEXT
- 2670 PRINTTAB(20)"[188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
- 2680 SYSPLT,21,3:PRINT" "
- 2690 SYSPLT,22,4:PRINT" "
- 2700 SYSPLT,23,5:PRINT" "
- 2710 SYSPLT,24,6:PRINT" "
- 2720 SYSPLT,25,7:PRINT" "
- 2730 SYSPLT,11,6:PRINT"[144] "
- 2740 SYSPLT,14,5:PRINT"[174][157][194][157][189]"
- 2750 BY=16:BX=21+INT(15*RND(0)):SYSPLT,BX,BY:PRINT"[209]"
- 2760 RETURN
- 2770 :
- 2780 :REM *** PLAY ***
- 2790 :
- 2800 FORHO=1TO9:BC$=""
- 2810 GOSUB4030:PRINT"[147]";
- 2820 ONHOGOSUB1160,1260,1440,1640,1840,1960,2120,2320,2570
- 2830 POKE646,9:PRINT"HOLE NUMBER:";STR$(HO);" PAR:";STR$(HA(HO,5));
- 2835 PRINT" SCORE";STR$(SC)
- 2840 PRINT"STROKES:";TS;" OVER/UNDER:";OU;"[146]":POKE646,0
- 2850 PRINT:PRINT"TRAPS:":IFHA(HO,1)THENPRINT"WATER"
- 2860 IFHA(HO,2)THENPRINT"[158]SAND"
- 2870 IFHA(HO,3)THENPRINT"UNEVEN"
- 2880 IFHA(HO,4)THENPRINT"[144]BLOCKS"
- 2890 PRINT:PRINT"[144]2 1 8":PRINT"3 [209] 7":PRINT"4 5 6"
- 2900 SYSPLOT,0,20:FORI=1TO3:PRINT" ":NEXT
- 2910 D$="":SYSPLT,0,20:INPUT"DIRECTION (1-8)";D$:DIR=VAL(D$)
- 2920 IFDIR>0ANDDIR<9ANDDIR=INT(DIR)THEN2940
- 2930 PRINT"THE DIRECTION IS FROM 1 TO 8 ...[145][145]":FORPA=1TO1500:NEXT:GOTO2900
- 2940 SYSPLT,0,20:FORI=1TO3:PRINT" ":NEXT
- 2950 D$="":SYSPLT,0,20:INPUT"SPEED (0-5)";D$:SP=VAL(D$)
- 2960 IFSP>0ANDSP<9THENN1=51:N2=75:GOSUB4200:GOTO2980
- 2970 PRINT"THE SPEED IS FROM 0 TO 5...[145][145]":FORPA=1TO1500:NEXT:GOTO2940
- 2980 UF=0:REM CLEAR UNEVEN FLAG
- 2990 TF=0:BT=0:REM CLEAR TRAP FLAGS
- 3000 REM BALL MOVES TILL SP=0 OR HAZARD ENCOUNTERED
- 3010 X2=BX+DI(DI,1):Y2=BY+DI(DI,2)
- 3020 D2=V(DI):CO=FNCO(D2):IFCO<>5ORFNSC(D2)<>160THEN3060
- 3030 SYSPLT,BX,BY:PRINTBC$" ";:BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]";
- 3040 BT=0:BC$="":GOTO3720
- 3050 REM DETERMINE BALL LIE
- 3060 IFCO=0ANDFNSC(D2)<>160THEN3140:REM HIT A WALL OR BUMPER
- 3070 IFCO=6ANDBT=1THENBT=0:GOTO3380:REM WAS IN THE WATER
- 3080 IFCO=6THENBT=1:GOTO3380:REM JUST LANDED IN WATER
- 3090 IFCO=7ANDBT=1THENBT=0:GOTO3440:REM WAS IN THE SAND
- 3100 IFCO=7THENBT=1:GOTO3440:REM JUST LANDED IN SAND
- 3110 IFCO=2THEN3500:REM UNEVEN SURFACE
- 3120 IFCO=0THEN3590:REM HIT THE HOLE
- 3130 REM HIT WALL OR BUMPER (FROM 3120)
- 3140 IFDI=1ORDI=3THENDI=DI+4:GOTO3010:REM REBOUND DIR 1 OR 3 TO DIR 5 OR 7
- 3150 IFDI=5ORDI=7THENDI=DI-4:GOTO3010:REM REBOUND DIR 5 OR 7 TO DIR 1 OR 3
- 3160 ONDI/2GOTO3180,3230,3280,3330
- 3170 REM REBOUND DIR 2 TO DIR 6
- 3180 IFFNSC(D2+1)<>160ANDFNSC(D2+40)<>160THENDI=6:GOTO3010
- 3190 IFFNSC(D2+1)<>160THENDI=4:GOTO3010
- 3200 IFFNSC(D2+40)<>160THENDI=8:GOTO3010
- 3210 DI=6:GOTO3010
- 3220 REM REBOUND DIR 4 TO DIR 6
- 3230 IFFNSC(D2+1)<>160ANDFNSC(D2-40)<>160THENDI=8:GOTO3010
- 3240 IFFNSC(D2+1)<>160THENDI=2:GOTO3010
- 3250 IFFNSC(D2-40)<>160THENDI=6:GOTO3010
- 3260 DI=8:GOTO3010
- 3270 REM REBOUND DIR 6 TO DIR 2
- 3280 IFFNSC(D2-1)<>160ANDFNSC(D2-40)<>160THENDI=2:GOTO3010
- 3290 IFFNSC(D2-1)<>160THENDI=8:GOTO3010
- 3300 IFFNSC(D2-40)<>160THENDI=4:GOTO3010
- 3310 DI=2:GOTO3010
- 3320 REM REBOUND DIR 8 TO DIR 4
- 3330 IFFNSC(D2-1)<>160ANDFNSC(D2+40)<>160THENDI=4:GOTO3010
- 3340 IFFNSC(D2-1)<>160THENDI=6:GOTO3010
- 3350 IFFNSC(D2+40)<>160THENDI=2:GOTO3010
- 3360 DI=4:GOTO3010
- 3370 REM WATER TRAP (FROM 3121)
- 3380 IFTF>0THEN3400
- 3390 TF=3:REM SET TRAP FLAG
- 3400 SYSPLT,BX,BY:PRINTBC$" ";
- 3410 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]";:BC$=""
- 3420 GOTO3720
- 3430 REM SAND TRAP (FROM 3122)
- 3440 IFTF>0THEN3460
- 3450 TF=3:REM SET TRAP FLAG
- 3460 SYSPLT,BX,BY:PRINTBC$" ";
- 3470 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[158][209]";:BC$="[158]"
- 3480 GOTO3720
- 3490 REM UNEVEN SURFACE (FROM 3123)
- 3500 IFUFTHEN3550
- 3510 UF=1:REM SET UNEVEN FLAG REROLL BALL OFF COURSE
- 3520 DI=DI+2*INT(2*RND(0))-1
- 3530 IFDI=0THENDI=2
- 3540 IFDI=9THENDI=7
- 3550 SYSPLT,BX,BY:PRINTBC$" ";
- 3560 BX=X2:BY=Y2:SYSPLT,BX,BY:PRINT"[209]";:BC$=""
- 3570 GOTO3720
- 3580 REM DETERMINE IF BALL IN HOLE
- 3590 SYSPLT,BX,BY:PRINT" ":SYSPLT,X2,Y2:PRINT" "
- 3600 SYSPLT,X2,Y2:PRINT"[144] ";
- 3610 DI=DI+2*INT(2*RND(0))-1
- 3620 IFDI=0THENDI=8
- 3630 IFDI=9THENDI=1
- 3640 SP=SP-.5:IFSP>0THENX2=X2+DI(DI,1):Y2=Y2+DI(DI,2):GOTO3020
- 3650 N1=7:N2=50:GOSUB4200:REM CUP SOUND
- 3660 SC=SC+1:TS=TS+1:REM BUMP SCORE
- 3670 TP=TP+HA(HO,5):OU=SC-TP:REM DETERMINE OVER/UNDER PAR
- 3680 POKE646,9:PRINT"HOLE NUMBER:";HO;" PAR:";HA(HO,5);" SCORE:";SC
- 3690 PRINT"STROKES:";TS;" OVER/UNDER:";OU;"[146]":POKE646,0
- 3700 IFSC=1THENGOSUB4290
- 3710 GOTO3780
- 3720 REM DECREMENT PENALTY OR NEXT HOLE
- 3730 IFTF>0THENTF=TF-1:IFTF=0THEN3750
- 3740 SP=SP-.3:IFSP>0THEN3010
- 3750 SC=SC+1:TS=TS+1
- 3760 IFBT=1THENGOSUB4060:REM PENALTY
- 3770 GOTO2830
- 3780 GOSUB4030:NEXTHO
- 3790 :
- 3800 :REM *** END ***
- 3810 :
- 3820 FORPA=1TO200:NEXTPA:POKE646,7
- 3830 PRINT"[147]";TAB(9)"*** MINIATURE GOLF ***"
- 3850 PRINT"THE GAME IS OVER !"
- 3860 PRINT
- 3870 PRINT"ON THE PAR 27 COURSE, YOU SHOT":PRINT"A ROUND OF"SC"[157].";
- 3880 PRINT" THAT MAKES YOUR"
- 3890 PRINT"AVERAGE"INT(SC*100/9)/100"SHOTS PER HOLE.":PRINT
- 3900 IFSC<=27THENPRINT"[156]GREAT GAME! YOU SHOULD TURN PRO.[144]":GOTO3960
- 3910 IFSC>27ANDSC<=36THENPRINT"VERY, VERY NICE TRY![144]":GOTO3960
- 3920 PRINT:IFSC>36ANDSC<=45THENPRINT"[158]NOT TOO BAD - FOR A DUFFER![144]":GOTO3960
- 3930 IFSC>45ANDSC<=50THENPRINT"YOU NEED LOTS AND LOTS OF PRACTICE![144]":GOTO3960
- 3940 IFSC>50ANDSC<=56THENPRINT"DON'T TRY TO MAKE A LIVING OFF GOLF!":GOTO3960
- 3950 PRINT"[144]FORGET IT AND GO PLAY MONOPOLY!!"
- 3960 INPUT"[144]PLAY AGAIN (Y/N):";YN$
- 3970 IFYN$=""THEN3960
- 3980 IFYN$="N"THENEND
- 3990 IFYN$<>"Y"THEN3960
- 4000 RUN
- 4010 REM -----------------------------
- 4020 REM HOLD SCREEN DELAY
- 4030 FORX=1TO1250:NEXT:RETURN
- 4040 REM -----------------------------
- 4050 REM FLASH PENALTY SIGNAL
- 4060 FORPF=1TO3
- 4070 FORCLEAR=STOVOL:POKECLEAR,0:NEXT
- 4080 POKEVOL,15
- 4090 POKEA1D,80:POKES1R,243:POKEW1U,4
- 4100 FORKS=1TO3
- 4110 PRINT""SPC(20)"[146]PENALTY":FORX=1TO300:NEXT
- 4120 POKEF1W,65
- 4130 FORI=20TO140STEP5:POKEP1U,I:NEXT
- 4140 POKEF1W,64:FORI=1TO50:NEXT
- 4150 PRINT""SPC(20)" ":FORX=1TO300:NEXT
- 4160 NEXTKS
- 4170 SC=SC+1:TS=TS+1:BT=0:RETURN
- 4180 REM -----------------------------
- 4190 REM GOLF SOUNDS ROUTINE
- 4200 FORCLEAR=STOVOL:POKECLEAR,0:NEXT
- 4210 POKEVOL,15
- 4220 POKEW1U,8:POKEA1D,0:POKES1R,240
- 4230 POKES,N1:POKEP1U,N2
- 4240 POKEF1W,65
- 4250 POKEF1W,64:POKEVOL,0
- 4260 RETURN
- 4270 REM -----------------------------
- 4280 REM FANFARE SALUTE
- 4290 FORCLEAR=STOVOL:POKECLEAR,0:NEXT
- 4300 FORFF=1TO4
- 4310 POKEA1D,85:POKES1R,85:POKEA2D,85:POKES2R,85
- 4320 POKEVOL,15:POKEF1W,33:POKEF2W,17
- 4330 FORI=1TO11STEP2:POKEP1U,YY(I):POKES,ZZ(I)
- 4340 POKEU2P,YY(I+1):POKEP2L,ZZ(I+1)
- 4350 IFYY(I)=50THENFORPA=1TO200:NEXT
- 4360 FORPA=1TO100:NEXT
- 4370 NEXT
- 4380 POKEF1W,32:POKEF2W,16:FORPA=1TO500:NEXT
- 4390 GOSUB4430:REM FLASH MESSAGE
- 4400 NEXTFF
- 4410 H1=0:PRINT"[144]":RETURN
- 4420 REM HOLE IN ONE FLASH
- 4430 PRINT"[146]"SPC(20)"[158]A HOLE IN ONE!!":FORX=1TO300:NEXT
- 4440 PRINT""SPC(20)" ":FORX=1TO300:NEXT
- 4450 POKEVOL,0:RETURN
-