10   REM *** GOLFE MINIATURA *** 
20   GOSUB 1000 : REM *** INSTRUCOES *** 
30   GOSUB 2000 : REM ****  INICIO ***** 
40   GOSUB 3000 : REM *******JOGO******* 
50   GOSUB 4000 : REM ******  FIM  ***** 
60   END
1000 REM *** INSTRUCOES ***
1010 TEXT : NORMAL : HOME 
1020 VTAB 1:HTAB 9:PRINT"GOLFE MINIATURA"
1030 VTAB 5:PRINT "BENVINDO AO EXPERT COUNTRY CLUB. ESTE MARAVILHOSO CAMPO DE MINI-GOLFE QUE POSSUI NOVE BURACOS ESTA ABERTO E ESPERANDO POR VOCE!"
1035 PRINT
1040 PRINT "VOCE PRECISA SABER AS INSTRUCOES ANTES DE COMECAR"
1045 PRINT :PRINT "PARA DAR A TACADA NA BOLA, VOCE PRECISA DETERMINAR QUAL A DIRECAO DESEJADA. EXISTEM 8 DIRECOES DETERMINADAS PELAS TECLAS:"
1050 PRINT :PRINT :"2 1 8":PRINT "                   3 * 7":PRINT "                   4 5 6"
1065 VTAB 23: INPUT "TECLE RETURN PARA CONTINUAR:";ANS$
1070 HOME: VTAB 1:HTAB 9 :PRINT "*** GOLFE MINIATURA ***"
1075 VTAB 5
1080 PRINT "AGORA VOCE PRECISA DETERMINAR QUAL A VELOCIDADE DA BOLA A VELOCIDADE DEVE SER DADA POR UM NUMERO ENTRE 0.00 E 5.00. POR EXEMPLO VOCE PODE ATIRAR UMA BOLA COM UMA VELOCIDADE RELATIVA DE 1.3" 
1085 PRINT
1090 PRINT "TENTE ALGUMAS VEZES ANTES PARA PERCEBER A DIFICULDADE DE PASSAR POR UM BURACO." 
1095 PRINT
1100 PRINT "EXISTEM 4 TIPOS DE OBSTACULOS. FIQUE ATENTO PARA PERCEBE-LOS E QUAL A RELACAO DELES COM A BOLA."
1110 VTAB 23: INPUT "TECLE RETURN PARA CONTINUAR :";ANS$
1120 HOME: VTAB1:HTAB 9:PRINT "***GOLFE MINIATURA ***"
1125 VTAB 5
1130 PRINT "BLOCOS : SAO COMO PAREDES, VOCE PRECISA CONTORNA'-LOS"
1135 PRINT
1140 PRINT "TELAS AMARELAS REPRESENTAM AREIA. A SUA BOLA NAO PODE PENETRAR NOS BANCOS DE AREIA. A PENALIDADE PARA ISTO E' UM STROKE "
1145 PRINT
1150 PRINT"AGUA: ASSIM COMO A AREIA,ESTA TELA AZUL VAI ATRASAR E INTERROMPER A JOGADA, ACARRETANDO MAIS UM STROKE
1155 PRINT 
1160 PRINT "SUPERFICIES IRREGULARES : OS BLOCOS LARANJA DESVIARAO A DIRECAO DA BOLA ALEATORAMENTE. ESTA FALTA NAO SOFRE PENALIDADE."
1170 VTAB 23: INPUT " TECLE RETURN PARA CONTINUAR: ";ASN$
1180 HOME :VTAB 1:HTAB 9:PRINT "*** GOLFE MINIATURA***"
1185 VTAB 5
1190 RETURN 
2000 REM *** INICIO *** 
2005 BEL$=CHR$(7)
2010 DIM HA(9,5):FOR I = 1 TO 9:FOR J = 1 TO 5:READ HA(I,J):NEXT J,I
2011 DATA 0,0,0,0,2
2012 DATA 1,0,0,0,3
2013 DATA 0,1,0,0,3
2014 DATA 1,1,0,0,3
2015 DATA 0,0,0,1,3
2016 DATA 0,0,1,1,3
2017 DATA 1,0,1,0,3
2018 DATA 0,1,1,0,4
2019 DATA 0,0,1,1,3
2020 DIM DI(8,2):FOR I =1 TO 8:READ DI(1,1),D1(I,2):NEXT:DATA 0,-1 ,-1,-1, -1,0, -1,1, 0,1, 1,1, 1,0, 1,-1
2045 GR:HOME:RETURN
2050 COLOR=12
2052 FOR I = 0 TO 19 
2054 HLIN 0,39 AT I:HLIN 0,39 AT 39-I
2056 VLIN 0,39 AT I:VLIN 0,39 AT 39-I 
2058 NEXT :RETURN
2100 REM *** BURACO 1 *** 
2105 GOSUB 2050 
2106 COLOR = 1
2107 HLIN 10,24 AT 6: HLIN 10,24 AT 33
2108 VLIN 6,33 AT 10: VLIN 6,33 AT 24
2110 COLOR = 8 :PLOT 17,9
2115 BY=32: BX=INT (RND (1) * 11) + 12: COLOR = 15: PLOT BX,BY:RETURN 
2200 REM *** BURACO 2 ***
2205 GOSUB 2050:COLOR = 1: HLIN 10,24 AT 33: VLIN 6,33 AT 10: VLIN 16,33 AT 24:HLIN 10,35 AT 6:HLIN 24,35 AT 16 :VLIN 6,16 AT 35
2207 COLOR = 2: VLIN 18,19 AT 20: VLIN 17,21 AT 21: VLIN 17,23 AT 22:VLIN 16,26 AT 23
2210 COLOR = 8:PLOT 32,11
2215 BY = 32: BX = INT ( RND (1) * 11 ) + 12:COLOR = 15: PLOT BX,BY: RETURN
2300 REM *** BURACO 3 *** 
2305 GOSUB 2050: COLOR = 1:HLIN 24,35 AT 6: HLIN 10,24 AT 15: HLIN 24,35 AT 24:HLIN 10,24 AT 33: VLIN 6,15 AT 24: VLIN 15,33 AT 10: VLIN 24,33 AT 24: VLIN 6,24 AT 35
2307 COLOR = 13: PLOT 30,23: VLIN 22,23 AT 31: VLIN 20,23 AT 32: VLIN 19,23 AT 33: VLIN 17,23 AT 34
2310 COLOR = 8:PLOT 32,9
2315 BY = 32 :BX = INT (RND (1 ) *11) +12: COLOR = 15: PLOT BX,BY:RETURN
2400 REM *** BURACO 4 ***
2405 GOSUB 2050: COLOR = 1: HLIN 5,35 AT 6: HLIN 15,25 AT 15: HLIN 25,35 AT 24: HLIN 5,15 AT 33: VLIN 6,33 AT 5: VLIN 15,33 AT 15: VLIN 15,24 AT 25: VLIN 6,24 AT 35
2407 COLOR = 13: PLOT 15,7:VLIN 7,8 AT 16:VLIN 7,9 AT 17: VLIN 7,9 AT 18: VLIN 7,8 AT 19: PLOT 20,7
2408 COLOR = 2:PLOT 15,14: VLIN 13,14 AT 16: VLIN 13,14 AT 17:VLIN 13,14 AT 18:VLIN 13,14 AT 19: VLIN 13,14 AT 20: VLIN 12,14 AT 21: VLIN 11,14 AT 22
2410 COLOR = 8:PLOT 32,21
2415 BY = 32: BX = INT (RND (1) * 9) + 6 : COLOR = 15: PLOT BX,BY: RETURN 
2500 REM *** BURACO 5 *** 
2505 GOSUB 2050: COLOR = 1:HLIN 10,24 AT 6:HLIN 10,24 AT 33: VLIN 6,33 AT 10 :VLIN 6,33 AT 24: HLIN 13,21 AT 17: VLIN 12,17 AT 13: VLIN 12,17 AT 21
2510 COLOR = 8: PLOT 17,9
2515 BY = 32: BX = INT (RND (1) * 11> + : COLOR = 15 :PLOT BX,BY: RETURN
2600 REM *** BURACO 6 ***
2605 GOSUB 2050: COLOR = 1:HLIN 10,24 AT 33: VLIN 6,33 AT 10: VLIN 16,33 AT 24: HLIN 10,35 AT 6: HLIN 24,35 AT 16: VLIN 6,16 AT 35
2607 HLIN 26,29 AT 9: HLIN 26,29 AT 13: VLIN 9,13 AT 26
2608 COLOR = 9: VLIN 13,18 AT 21: VLIN 13,18 AT 22: VLIN 13,18 AT 23: VLIN 13,15 AT 24: VLIN 14,15 AT 25: PLOT 26,15
2610 COLOR = 8: PLOT 32,11
2615 BY = 32: BX = INT (RND (1) * 11) +12:COLOR = 15: PLOT BX,BY :RETURN
2700 REM *** BURACO 7 *** 
2705 GOSUB 2050: COLOR = 1: HLIN 5,15 AT 6: HLIN 15,35 AT 12: HLIN 5,25 AT 24: HLIN 25,35 AT 33: VLIN 6,24 AT 5: VLIN 6,12 AT 15: VLIN 24,33 AT 25: VLIN 12,33 AT 35
2707 COLOR = 2: VLIN 16,23 AT 6: VLIN 17,23 AT 7: VLIN 18,23 AT 9: VLIN 20,23 AT 10: PLOT 11,23
2708 COLOR = 9:VLIN 13,28 AT 31: VLIN 13,28 AT 32: VLIN 13,28 AT 33: VLIN 13,28 AT 34: HLIN 25,30 AT 13: HLIN 25,30 AT 14: HLIN 25,30 AT 15
2710 COLOR = 8: PLOT 10,9
2715 BY = 32: BX = INT (RND (1) *7)+26:COLOR = 15: PLOT BX,BY: RETURN
2800 REM *** BURACO 8 ***
2805 GOSUB 2050: COLOR = 1: HLIN 5,35 AT 6: HLIN 15,25 AT 15: HLIN 5,15 AT 24: HLIN 25,35 AT 33: VLIN 6,24 AT 5: VLIN 15,24 AT 15: VLIN 15,33 AT 25: VLIN 6,33 AT 35
2807 COLOR = 9: VLIN 7,8 AT 25: VLIN 7,9 AT 26: VLIN 7,11 AT 27: VLIN 7,11 AT 28: VLIN 7,12 AT 29: VLIN 7,12 AT 30: VLIN 7,17 AT 31:VLIN 7,18 AT 32: VLIN 7,19 AT 33: VLIN 7,20 AT 34
2808 COLOR = 13: VLIN 11,13 AT 8: VLIN 10,15 AT 9: VLIN 9,15 AT 10: VLIN 9 ,16 AT 11: VLIN 9,16 AT 12
2810 COLOR = 8: PLOT 10,21
2815 BY = 32: BX = INT (RND (1) * 7) + 26: COLOR = 15: PLOT BX,BY: RETURN
2900 REM *** BURACO 9 ***
2905 GOSUB 2050: COLOR =1: HLIN 5,35 AT 6: HLIN 5,25 AT 18: HLIN 25,35 AT 33: VLIN 6,18 AT 5: VLIN 18,33 AT 25: VLIN 6,33 AT 35
2907 HLIN 8,11 AT 9: VLIN 9,15 AT 11
2908 COLOR = 9: HLIN 25,34 AT 7:HLIN 27,34 AT 8:HLIN 29,34 AT 9: HLIN 30,34 AT 10: HLIN 31,34 AT 11
2910 COLOR =8:PLOT 8,12
2915 BY = 32: BX = INT (RND (1) * 7)+26: COLOR = 15: PLOT BX,BY: RETURN
3000 REM *** J O G O ***
3010 FOR HO = 1 TO 9: BC = 12
3020 ON HO GOSUB 2100,2200,2300,2400,2500,2600,2700,2800,2900
3030 HOME:PRINT "BURACO NUMERO:"HO" PAR:"HA(HO,5)" PLACAR:"SC
3031 PRINT "TERRENO: ";:IF HA(HO,1) THEN PRINT "AGUA ";
3032 IF HA(HO,2) THEN PRINT "AREIA "; 
3033 IF HA(HO,3) THEN PRINT "IRREGULAR"; 
3034 IF HA(HO,4) THEN PRINT "BLOCOS "; 
3935 VTAB 23: HTAB 1: CALL -958: INPUT "DIRECAO (1-8): ";DIR
3040 IF DIR < 1 OR DIR > 8 OR DIR <> INT (DIR) THEN VTAB 23: CALL -958: PRINT "A DIRECAO E' ENTRE 1 E 8..." :FOR PA = 1 TO 1500: NEXT PA: GOTO 3035
3045 VTAB 23: CALL -958: INPUT "VELOCIDADE (0-5): ";SP
3050 IF SP < 0 OR SP > 5 THEN VTAB 23: CALL -958:PRINT "A VELOCIADE E' ENTRE 0 E 5...":FOR PA = 1 TO 1500:NEXT PA: GOTO 3045
3055 UF = 0
3056 TF = 0
3100 X2 = BX + DI(DI,1) :Y2 = BY + DI(DI,2)
3110 IF SCRN(X2,Y2) = 12 THEN COLOR = BC:PLOT BX,BY: COLOR = 15: PLOT X2,YY2: BX = X2: BY = Y2: BC = 12: GOTO 3900
3120 IF SCRN (X2,Y2) = 01 THEN 3200
3121 IF SCRN (X2.Y2) = 02 THEN 3300
3122 IF SCRN (X2,Y2) = 13 THEN 3400
3123 IF SCRN (X2,Y2) = 09 THEN 3500
3124 IF SCRN (X2,Y2) = 08 THEN 3600
3200 IF DI =1 OR DI = 3 THEN DI = DI+4: GOTO 3100
3201 IF DI = 7 OR DI = 5 THEN DI = DI-4:GOTO 3100
3210 ON DI/2 GOTO 3220,3240,3260,3280
3220 IF SCRN( X2+1,Y2)=1 AND SCRN( X2,Y2+1)=1 THEN DI=6:GOTO 3100
3225 IF SCRN( X2+1,Y2)=1 THEN DI=4: GOTO 3100
3235 DI=6:GOTO 3100
3240 IF SCRN( X2+1,Y2)=1 AND SCRN(X2,Y2--1>=1 THEN DI=8: GOTO 3100
3245 IF SCRN(X2+1,Y2)=1 THEN DI=2: GOTO 3100
3250 IF SCRN(X2+1,Y2)=1 THEN DI=6: GOTO 3100
3255 DI=8:GOTO 3100
3260 IF SCRN( X2-1,Y2)=1 AND SCRN(X2,Y2--1)=1 THEN DI=2: GOTO 3100
3265 IF SCRN( X2-1,Y2)=1 THEN DI=8: GOTO 3100
3270 IF SCRN( X2,Y2-1)=1 THEN DI=4: GOTO 3100
3275 DI=2: GOTO 3100
3280 IF SCNR( X2-1,Y2)=1 AND SCRN( X2,Y2+1)=1 THEN DI=4: GOTO 3100
3285 IF SCNR( X2-1,Y2)=1 THEN DI=6: GOTO 3100
3290 IF SCRN( X2,Y2+1)=1 THEN DI=2: GOTO 3100
3295 DI=4: GOTO 3100
3300 IF TF THEN 3310
3305 TF=3:SC=SC+1
3310 COLOR=BC:PLOT BX,BY: COLOR=15: PLOT X2,Y2:BX=X2:BY=Y2:BC=2
3320 GOTO 3900
3400 IF TF THEN 3410
3405 TF=3:SC=SC+1
3410 COLOR= BC: PLOT BX,BY: COLOR= 15: PLOT X2,Y2:BX= X2:BY= Y2:BC= 13
3420 GOTO 3900
3500 IF UF THEN 3520
3505 UF=1
3510 DI=DI + INT (RND(1) *2) * 2 -1
3515 IF DI= 0 THEN DI = 8
3516 IF DI= 9 THEN DI = 1
3520 COLOR= BC: PLOT BX,BY: COLOR= 15 : PLOT X2,Y2:BX=X2:BY=Y2:BC= 9: GOTO 3900
3600 COLOR=12: PLOT BX,BY: COLOR = 15 : PLOT X2,Y2: COLOR= 8: PLOT X2,Y2
3602 DI = DI + INT ( RND (1) *2)*2 -1
3604 IF DI = 0 THEN DI = 8
3605 SP = SP - .4:IF SP > 0 THEN X2=X2 + DI(DI,1):Y2=Y2+DI(DI,2): GOTO 3110
3606 IF DI =9 THEN DI = 1
3610 PRINT BELL$BELL$BELL$:SC = SC + 1: GOTO 3990
3900 XX=PEEK (-16336)-PEEK (-16336)
3902 IF TF > 0 THEN TF = TF - 1:IF TF =0 THEN 3910
3905 SP = SP - .2: IF SP > 0 THEN 3100
3910 SC = SC + 1: GOTO 3030
3990 NEXT HO: RETURN
4000 REM *** FIM ***
4010 TEXT: HOME: VTAB 3: HTAB 9: PRINT "*** GOLFE MINIATURA ***":VTAB 7
4020 PRINT BELL$BELL$BELL$"FIM DE JOGO!!!"
4022 PRINT
4025 PRINT "NO PAR 27 VOCE CONSEGUIU": PRINT "CHEGAR COM "SC" TACADAS. SUA MEDIA FOI DE "SC/9 "TACADAS POR BURACO"
4030 VTAB 22: PRINT "ESPERO QUE VOCE TENHA GOSTADO DO JOGO!!"
4990 RETURN 

