0 REM>GOLF CHALLENGER BY R.A.LARY-8/29/79 1 REM>FOR OSI SUPERBOARD II,CHALLENGER 1P & 2P /540 VIDEO BRD 5 DATA51,32,50,32,49,32,23,16,17,32,52,22,32,18,48 6 DATA32,21,20,19,32,53,32,54,32,55 9 REM>DATA BASE FOR HOLE DISPLAYS 10 DATA 42,181,52,171,62,161,11,62,151,21,72,71,45,21 12 DATA 31,82,51,35,32,41,92,41,15,22,13,12,41,25,92,21,52 14 DATA 41,45,132,15,51,55,102,25,71,55,42,34,35,91,55,54,35,5,2 20 DATA 52,121,55,102,51,42,35,202,25,212,15,51,122,11,32,14 22 DATA 71,85,31,22,24,81,65,51,12,24,101,35,61,12,24,191,32 24 DATA 191,32,191,12,13,12,191,32,5,2 30 DATA 191,32,191,12,13,12,181,42,42,141,32,15,72,91,24,32,15 32 DATA 92,61,24,42,15,112,31,24,42,25,41,92,21,42,35 34 DATA 71,112,45,91,34,52,55,101,44,22,65,121,34,75,5,5 40 DATA 42,151,32,52,141,12,13,12,52,111,35,32,11,52,81,45,42 42 DATA 11,52,81,35,52,21,52,51,45,52,11,21,52,51,25,62,21 44 DATA 35,52,41,72,31,35,52,21,82,41,45,122,61,45,102,24,61 46 DATA 75,94,61,5,2 50 DATA 41,65,64,61,41,25,72,34,61,41,15,112,61,41,42,44,72,31 52 DATA 41,42,31,14,82,21,31,42,71,82,21,52,101,32,13,12 54 DATA 11,52,101,25,42,11,42,121,55,42,141,45,42,181,42,181,5,11 60 DATA 141,55,32,141,25,42,13,12,131,35,62,131,25,62,11 62 DATA 121,35,42,31,131,15,52,31,42,91,15,42,41,72,61,52,41 64 DATA 102,21,52,51,21,152,51,21,35,92,24,61,31,55,84,61,5,8 70 DATA 131,65,32,131,55,22,13,12,131,35,62,111,102,15 72 DATA 71,102,34,25,61,82,54,35,41,52,11,42,24,61 74 DATA 31,52,11,52,81,11,112,101,112,111,62,161,42,181,5,11 80 DATA 42,181,42,181,52,171,52,171,11,52,81,45,41 82 DATA 11,52,51,115,21,52,41,25,92,21,52,31,102,13,12 84 DATA 31,142,25,32,31,132,35,31,21,35,32,64,55,31 86 DATA 21,55,74,35,51,5,2 90 DATA 221,221,71,42,44,75,41,102,34,55,202,25,92,41,82,15 92 DATA 222,41,102,24,21,42,111,54,31,32,191,12,13,12 94 DATA 191,32,221,5,6 100 NL=32:IFPEEK(57088)<128THENNL=64 105 OG=53248:HS=OG+NL*6:SP=32:TR=13:WT=29:B=79:CR=95 110 DIMN(4,10):DIMSC(4):SP$=" " 130 FORI=1TO15:PRINT:NEXTI:PRINTTAB(2);"GOLF CHALLENGER" 135 FORI=1TO16:PRINT:NEXTI 140 PRINT:INPUT"HOW MANY PLAYERS(1-4)";N 150 IFN<1ORN>4THEN140 160 FORI=1TON 162 PRINT:PRINT"PLAYER#";I;"'S NAME";:INPUTN$ 164 IFLEN(N$)>7THENPRINT"ONLY 7 LETTERS PLEASE!":GOTO162 166 FORK=1TOLEN(N$):N(I,K)=ASC(MID$(N$,K,1)):NEXTK 170 NEXTI 171 FORI=1TO32:PRINT:NEXTI 175 HE=HS-1+14*NL:FORI=HS TO HE:POKEI,TR:NEXT 180 S$="CLUB?":L=21:TB=4:GOSUB5000 190 S$="ANGLE?":TB=16:GOSUB5000 200 M=OG+22*NL+17:FORI=0TO24:READD:J=INT(I/5+1):K=I-5*(J-1) 210 POKEM+K+J*NL,D:NEXTI 300 F=1:FORI=1TO18:IFI<>10THEN320 310 RESTORE:FORJ=1TO25:READD:NEXTJ:F=-1 320 GOSUB1000 325 IF F<0THENTY=13-TY 330 FORP=1TON 334 TL=HS+(TY*NL+TX):OL=TL:TP=SP 336 POKETL,B:X1=TX:Y1=TY 340 GOSUB4000:S$=N$+STR$(SC(P))+SP$:L=4:TB=4:GOSUB5000 345 S$="HOLE"+STR$(I):TB=18:GOSUB5000 350 L=21:TB=9:GOSUB5100:V=10-V:CB=V*2 352 IF TP=187 THEN CB=V 355 IFV<1 OR V>9THENGOSUB5300:GOTO350 360 L=21:TB=22:GOSUB5100:DR=V*45 365 IFV<0 OR V>8THENGOSUB5300:GOTO360 500 GOSUB1500:ON SB GOTO510,520,530 510 SC(P)=SC(P)+1:GOTO340 520 SC(P)=SC(P)+2:POKEOL,B:GOTO340 530 SC(P)=SC(P)+1:POKELC,CH 600 NEXTP:P=P-1 610 NEXTI 700 FORI=1TO32:PRINT:NEXTI 710 PRINTTAB(5);"FINAL SCORE":PRINT 720 PRINT"PLAYER";TAB(15);"SCORE" 730 FORP=1TON:PRINT:GOSUB4000:PRINTN$;TAB(15);SC(P):NEXTP 740 FORI=1TO10:PRINT:NEXTI 750 INPUT"PLAY AGAIN";A$:IFASC(A$)=89THENRUN 999 END 1000 REM>DISPLAY HOLE 1020 L=1:HD=4:IFF<0THENL=12 1050 READ D:IFD<10THENTX=D:READTY:RETURN 1060 K=INT(D/10):C=D-K*10 1070 IFC=1THENC=13 1071 IFC=2THENC=32 1072 IFC=3THENC=226 1074 IFC=4THENC=187 1076 IFC=5THENC=29 1080 FORJ=1TOK 1090 HP=HS+(NL*L+HD):POKEHP,C:HD=HD+1 1095 IFHD>=26THENL=L+F:HD=4 1100 NEXTJ 1110 GOTO1050 1500 REM>MOVE BALL 1510 M=(DR-INT(DR/360)*360)*3.14159/180 1520 X=INT(CB*COS(M)+.5):Y=INT(CB*SIN(M)+.5) 2000 X2=X1+X:Y2=Y1-Y:FD=HS+(X2+NL*Y2) 2010 S=1 2020 IFX2=X1THEN2070 2025 IFABS((Y2-Y1)/(X2-X1))>1THEN2070 2030 IFX21THEN2120 2065 NEXTX:GOTO2110 2070 IFY21THEN2120 2105 NEXTY 2110 X1=X2:Y1=Y2:RETURN 2120 Y1=INT((OL-HS)/NL):X1=(OL-HS-Y1*NL):RETURN 3000 REM>BALL CHECK 3010 LC=HS+(Y*NL+X):SB=1:POKEOL,TP:CH=PEEK(LC) 3020 IFCH=TR THENSB=2 3030 IF(PEEK(FD)=13 OR PEEK(FD)=29)ANDCH=WTTHENSB=2 3040 IF(FDHE)ANDCH=WT THENSB=2 3050 IFCH=226 THENSB=3 3060 IFSB<>1THENRETURN 3070 TP=CH:POKELC,B:OL=LC:RETURN 4000 REM*CONV. NUM. ARRAY TO STRING 4010 N$="":FORK=1TO10:IFN(P,K)=0 THEN RETURN 4020 N$=N$+CHR$(N(P,K)):NEXTK 5000 REM*DISPLAY 5020 FORC=1TOLEN(S$):POKEOG+NL*L+TB+(C-1),ASC(MID$(S$,C,1)) 5030 NEXTC:RETURN 5100 REM*INPUT RTN 5110 CL=OG+NL*L+TB 5120 CC=0:S$=SP$:GOSUB5000:V$="" 5130 POKECL+CC,CR 5140 POKE11,0:POKE12,253:X=USR(X):IN=PEEK(531) 5150 IF(IN<48 OR IN>57) AND IN<>46 THEN5170 5160 POKECL+CC,IN:CC=CC+1:V$=V$+CHR$(IN):GOTO5130 5170 IF(IN=13 AND CC=0) OR IN=64 THEN5120 5180 POKECL+CC,SP 5190 IF IN=13 THEN V=VAL(V$):RETURN 5200 IFIN=CR AND CC=<1THEN5120 5210 IFIN=CRTHENCC=CC-1:V$=LEFT$(V$,CC) 5220 GOTO5130 5300 REM*INPUT ERROR 5310 L=25:TB=3:S$="":GOSUB5000 5320 FORX=1TO1000:NEXTX 5330 S$=" ":GOSUB5000 5340 RETURN