Here it is:
Code:
DECLARE SUB BALLCOLOUR (COL%)
SCREEN 0
CLS
Q = 23
PINLIN4% = 1
PINLIN3% = 1
PINLIN2% = 1
HEADPIN% = 1
L1:
N% = 1
FOR I% = 1 TO 50!
LOCATE 2, 37: IF PINLIN4% = 1 THEN PRINT "O O O O" ELSE PRINT " "
LOCATE 3, 38: IF PINLIN3% = 1 THEN PRINT "O O O" ELSE PRINT " "
LOCATE 4, 39: IF PINLIN2% = 1 THEN PRINT "O O" ELSE PRINT " "
LOCATE 5, 40: IF HEADPIN% = 1 THEN PRINT "O" ELSE PRINT " "
LOCATE Q, 40: PRINT "0"
NEXT I%
I% = 0
Q = Q - 1
IF Q < 2 THEN GOTO L2
LOCATE Q + 1, 40: PRINT " "
IF Q = 5 THEN HEADPIN% = 0
IF Q = 4 THEN PINLIN2% = 0
IF Q = 3 THEN PINLIN3% = 0
IF Q = 2 THEN PINLIN4% = 0
GOTO L1
L2:
BALLCOLOUR COL%
SCREEN 0: WIDTH 80, 25
CLS
PRINT "BOWLING"
PRINT "CREATED BY JOHN KREITLOW"
PRINT "IN ASSOCIATION WITH rADIUM-V"
LOCATE 1, 12: PRINT COL%
PRINT
LOCATE 5, 18: PRINT "BASED ON ACME SOFTWARE'S `BOWLIN' FOR THE TI-83"
PRINT
LOCATE 7, 31: PRINT "PRESS SPACE TO START"
LOCATE 8, 32: PRINT "PRESS ESC TO QUIT"
LOCATE 9, 32: PRINT "╔═══════════════╗"
LOCATE 10, 32: PRINT "║ LANE RULES ║"
LOCATE 11, 32: PRINT "╚═══════════════╝"
PRINT
PRINT "STRIKE = 30 POINTS"
PRINT "SPARE = 20 POINTS"
PRINT "HIT `ENTER' AT WANTED SPACE ON THE LANE TO SELECT IT."
PRINT "SELECT DESIRED STRENGTH,INDICATED NEAR BASE OF POWER METER. CHOOSE QUICKLY,"
PRINT " BECAUSE YOU WILL MISS A TURN IF YOU TAKE TOO MUCH TIME."
OPEN "BOWLING.HSR" FOR INPUT AS #1
INPUT #1, SCORE1%
INPUT #1, NAME$
PRINT "HI-SCORE:"; SCORE1%; "BY "; NAME$
FOR I% = 1 TO 50
N$ = INKEY$
IF N$ = CHR$(32) THEN GOTO 0
IF N$ = CHR$(27) THEN GOTO GAMEND
I% = 1
NEXT I%
0 SCREEN 7
SCORE% = 0
PIN1% = 1
PIN2% = 1
PIN3% = 1
PIN4% = 1
PIN5% = 1
PIN6% = 1
PIN7% = 1
PIN8% = 1
PIN9% = 1
PIN0% = 1
FOR I% = 1 TO 20
TOP:
N% = 1
SCREEN 7
CLS
IF I% = 1 OR I% = 3 OR I% = 5 OR I% = 7 OR I% = 9 OR I% = 11 OR I% = 13 OR I% = 15 OR I% = 17 OR I% = 19 THEN FRAMEP% = 1
IF I% = 2 OR I% = 4 OR I% = 6 OR I% = 8 OR I% = 10 OR I% = 12 OR I% = 14 OR I% = 16 OR I% = 18 OR I% = 20 THEN FRAMEP% = 2
IF FRAMEP% = 1 OR PIN1% = 1 THEN PIN1% = 1: CIRCLE (70, 10), 5 ELSE IF FRAMEP% = 2 AND PIN1% = 0 THEN CIRCLE (70, 10), 5, 0
IF FRAMEP% = 1 OR PIN2% = 1 THEN PIN2% = 1: CIRCLE (110, 10), 5 ELSE IF FRAMEP% = 2 AND PIN2% = 0 THEN CIRCLE (110, 10), 5, 0
IF FRAMEP% = 1 OR PIN3% = 1 THEN PIN3% = 1: CIRCLE (150, 10), 5 ELSE IF FRAMEP% = 2 AND PIN3% = 0 THEN CIRCLE (150, 10), 5, 0
IF FRAMEP% = 1 OR PIN4% = 1 THEN PIN4% = 1: CIRCLE (190, 10), 5 ELSE IF FRAMEP% = 2 AND PIN4% = 0 THEN CIRCLE (190, 10), 5, 0
IF FRAMEP% = 1 OR PIN5% = 1 THEN PIN5% = 1: CIRCLE (90, 30), 5 ELSE IF FRAMEP% = 2 AND PIN5% = 0 THEN CIRCLE (90, 30), 5, 0
IF FRAMEP% = 1 OR PIN6% = 1 THEN PIN6% = 1: CIRCLE (130, 30), 5 ELSE IF FRAMEP% = 2 AND PIN6% = 0 THEN CIRCLE (130, 30), 5, 0
IF FRAMEP% = 1 OR PIN7% = 1 THEN PIN7% = 1: CIRCLE (170, 30), 5 ELSE IF FRAMEP% = 2 AND PIN7% = 0 THEN CIRCLE (170, 30), 5, 0
IF FRAMEP% = 1 OR PIN8% = 1 THEN PIN8% = 1: CIRCLE (110, 50), 5 ELSE IF FRAMEP% = 2 AND PIN8% = 0 THEN CIRCLE (110, 50), 5, 0
IF FRAMEP% = 1 OR PIN9% = 1 THEN PIN9% = 1: CIRCLE (150, 50), 5 ELSE IF FRAMEP% = 2 AND PIN9% = 0 THEN CIRCLE (150, 50), 5, 0
IF FRAMEP% = 1 OR PIN0% = 1 THEN PIN0% = 1: CIRCLE (130, 70), 5 ELSE IF FRAMEP% = 2 AND PIN0% = 0 THEN CIRCLE (130, 70), 5, 0
LINE (300, 10)-(310, 190), 4, BF
LINE (28, 10)-(28, 190)
LINE (222, 10)-(222, 190)
A = 40
B = 190
C = 190
D = 10
IF I% = 1 OR I% = 2 THEN FRAME% = 1
IF I% = 3 OR I% = 4 THEN FRAME% = 2
IF I% = 5 OR I% = 6 THEN FRAME% = 3
IF I% = 7 OR I% = 8 THEN FRAME% = 4
IF I% = 9 OR I% = 10 THEN FRAME% = 5
IF I% = 11 OR I% = 12 THEN FRAME% = 6
IF I% = 13 OR I% = 14 THEN FRAME% = 7
IF I% = 15 OR I% = 16 THEN FRAME% = 8
IF I% = 17 OR I% = 18 THEN FRAME% = 9
IF I% = 19 OR I% = 20 THEN FRAME% = 10
LOCATE 2, 30: PRINT "SCORE:"
LOCATE 3, 30: PRINT SCORE%
LOCATE 5, 30: PRINT "FRAME:"
LOCATE 6, 30: PRINT FRAME%
1 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, COL%
A = A + 1
IF A > 210 THEN GOTO 2
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO 3
IF N$ = CHR$(27) THEN GOTO GAMEND
GOTO 1
2 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, COL%
A = A - 1
IF A < 40 THEN GOTO 1
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO 3
IF N$ = CHR$(27) THEN GOTO GAMEND
GOTO 2
3 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, 0
IF A > 30 AND A < 70 THEN A = 50
IF A > 50 AND A < 90 THEN A = 70
IF A > 70 AND A < 110 THEN A = 90
IF A > 90 AND A < 130 THEN A = 110
IF A > 110 AND A < 150 THEN A = 130
IF A > 130 AND A < 170 THEN A = 150
IF A > 150 AND A < 190 THEN A = 170
IF A > 170 AND A < 210 THEN A = 190
IF A > 190 AND A < 240 THEN A = 210
CIRCLE (A, B), 10, COL%
H% = 5
SOUND 400, .5
4 FOR F% = 1 TO 3
LINE (300, C)-(310, C), 2, BF
NEXT F%
C = C - 1
D = D + 1
IF D <= 39 THEN E = 5
IF D >= 39 AND D <= 76 THEN E = 4
IF D >= 77 AND D <= 114 THEN E = 3
IF D >= 115 AND D <= 152 THEN E = 2
IF D >= 153 THEN E = 1
LOCATE 23, 35: PRINT E
IF C = 10 THEN SOUND 400, .5: LINE (300, 10)-(310, 190), 4, BF: C = 190: D = 10: H% = H% - 1
IF H% = 0 THEN GOTO TIME
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO HIT1
LOCATE 12, 15: PRINT H%
GOTO 4
HIT1:
IF D <= 39 THEN E = 5
IF D >= 39 AND D <= 76 THEN E = 4
IF D >= 77 AND D <= 114 THEN E = 3
IF D >= 115 AND D <= 152 THEN E = 2
IF D >= 153 THEN E = 1
HIT2:
FOR Z% = 1 TO E
CIRCLE (A, B), 10, COL%
CIRCLE (A, B), 10, 0
NEXT Z%
B = B - 1
IF B = -5 THEN GOTO SCORE
GOTO HIT2
SCORE:
IF A = 70 AND PIN1% = 0 THEN P = 0
IF A = 70 AND PIN1% = 1 THEN PIN1% = 0: P = 1
IF A = 90 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN5% = 0: P = 3
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 THEN P = 0
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 1 AND PIN5% = 1 THEN PIN2% = 0: PIN5% = 0: P = 2
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 1 AND PIN2% = 0 AND PIN5% = 1 THEN PIN1% = 0: PIN5% = 0: P = 2
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 1 AND PIN2% = 1 AND PIN5% = 1 THEN PIN1% = 0: PIN2% = 0: PIN5% = 0: P = 3
IF A = 110 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN3% = 0: PIN5% = 0: PIN6% = 0: PIN8% = 0: P = 6
IF A = 110 AND FRAMEP% = 2 AND PIN8% = 0 THEN P = 0
IF A = 110 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 1 AND PIN3% = 1 AND PIN5% = 1 AND PIN6% = 1 AND PIN8% = 1 THEN PIN2% = 0: PIN3% = 0: PIN5% = 0: PIN6% = 0: PIN8% = 0: P = 5
IF A = 110 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 AND PIN8% = 1 AND PIN6% = 1 AND PIN3% = 1 THEN PIN8% = 0: PIN6% = 0: PIN3% = 0: P = 3
IF A = 110 AND FRAMEP% = 2 AND PIN9% = 0 THEN PIN1% = 0: PIN5% = 0: PIN8% = 0: P = 3
IF A = 110 AND FRAMEP% = 2 AND PIN7% = 0 AND PIN9% = 1 THEN PIN8% = 0: PIN1% = 0: PIN2% = 0: PIN5% = 0: PIN6% = 0: P = 5
IF A = 130 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN3% = 0: PIN4% = 0: PIN5% = 0: PIN6% = 0: PIN7% = 0: PIN8% = 0: PIN9% = 0: PIN0% = 0: I% = I% + 1: P = 30: GOTO STRIKE
IF A = 130 AND FRAMEP% = 2 THEN SCORE% = SCORE% - P: P = 20: GOTO SPARE
IF A = 150 AND FRAMEP% = 1 THEN PIN2% = 0: PIN3% = 0: PIN4% = 0: PIN6% = 0: PIN7% = 0: PIN9% = 0: P = 6
IF A = 150 AND FRAMEP% = 2 AND PIN9% = 0 THEN P = 0
IF A = 150 AND FRAMEP% = 2 AND PIN4% = 0 AND PIN2% = 1 AND PIN3% = 1 AND PIN7% = 1 AND PIN6% = 1 AND PIN9% = 1 THEN PIN9% = 0: PIN7% = 0: PIN6% = 0: PIN3% = 0: PIN2% = 0: P = 5
IF A = 150 AND FRAMEP% = 2 AND PIN4% = 0 AND PIN3% = 0 AND PIN7% = 0 AND PIN9% = 1 AND PIN6% = 1 AND PIN2% = 1 THEN PIN9% = 0: PIN6% = 0: PIN2% = 0: P = 3
IF A = 150 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 THEN PIN3% = 0: PIN4% = 0: PIN6% = 0: PIN7% = 0: PIN9% = 0: P = 5
IF A = 150 AND FRAMEP% = 2 AND PIN8% = 0 THEN PIN9% = 0: PIN7% = 0: PIN4% = 0: P = 3
IF A = 170 AND FRAMEP% = 1 THEN PIN3% = 0: PIN4% = 0: PIN7% = 0: P = 3
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 0 THEN P = 0
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 1 AND PIN3% = 1 AND PIN4% = 0 THEN PIN7% = 0: PIN3% = 0: P = 2
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 1 AND PIN3% = 0 AND PIN4% = 1 THEN PIN7% = 0: PIN4% = 0: P = 2
IF A = 190 AND FRAMEP% = 1 THEN PIN4% = 0: P = 1
IF A = 190 AND FRAMEP% = 2 AND PIN4% = 0 THEN P = 0
IF A = 190 AND FRAMEP% = 2 AND PIN4% = 1 THEN PIN4% = 0: P = 1
IF A > 190 OR A < 70 THEN P = 0
999
SCORE% = SCORE% + P
FOR F% = 1 TO 90!
IF PIN1% = 1 THEN PIN1% = 1: CIRCLE (70, 10), 5 ELSE IF PIN1% = 0 THEN CIRCLE (70, 10), 5, 0
IF PIN2% = 1 THEN PIN2% = 1: CIRCLE (110, 10), 5 ELSE IF PIN2% = 0 THEN CIRCLE (110, 10), 5, 0
IF PIN3% = 1 THEN PIN3% = 1: CIRCLE (150, 10), 5 ELSE IF PIN3% = 0 THEN CIRCLE (150, 10), 5, 0
IF PIN4% = 1 THEN PIN4% = 1: CIRCLE (190, 10), 5 ELSE IF PIN4% = 0 THEN CIRCLE (190, 10), 5, 0
IF PIN5% = 1 THEN PIN5% = 1: CIRCLE (90, 30), 5 ELSE IF PIN5% = 0 THEN CIRCLE (90, 30), 5, 0
IF PIN6% = 1 THEN PIN6% = 1: CIRCLE (130, 30), 5 ELSE IF PIN6% = 0 THEN CIRCLE (130, 30), 5, 0
IF PIN7% = 1 THEN PIN7% = 1: CIRCLE (170, 30), 5 ELSE IF PIN7% = 0 THEN CIRCLE (170, 30), 5, 0
IF PIN8% = 1 THEN PIN8% = 1: CIRCLE (110, 50), 5 ELSE IF PIN8% = 0 THEN CIRCLE (110, 50), 5, 0
IF PIN9% = 1 THEN PIN9% = 1: CIRCLE (150, 50), 5 ELSE IF PIN9% = 0 THEN CIRCLE (150, 50), 5, 0
IF PIN0% = 1 THEN PIN0% = 1: CIRCLE (130, 70), 5 ELSE IF PIN0% = 0 THEN CIRCLE (130, 70), 5, 0
LOCATE 12, 15: PRINT "+"; P
NEXT F%
IF I% = 20 THEN GOTO GAMEOVR
NEXT I%
END
'-----------------------------------------------------------------------------
SPARE:
CLS
Y = 13
Z = 26
SPARE1:
SCREEN 7
O% = 1
LOCATE 5, 13: COLOR 7: PRINT "╔════════════╗"
LOCATE 6, 13: COLOR 7: PRINT "║ SPARE! ║"
LOCATE 7, 13: COLOR 7: PRINT "╚════════════╝"
LOCATE 5, Y: COLOR 4: PRINT " ═"; CHR$(15)
LOCATE 7, Z: COLOR 4: PRINT CHR$(15); "═ "
LOCATE 9, 13: COLOR 7: PRINT " PRESS SPACE"
Y = Y + 1
Z = Z - 1
IF Y = 25 THEN Y = 13
IF Z = 13 THEN Z = 25
FOR O% = 1 TO 500!
N$ = INKEY$
IF N$ = CHR$(32) THEN COLOR 15: CLS : SCREEN 7: GOTO 999
NEXT O%
GOTO SPARE1
GOTO 999
STRIKE:
CLS
Y = 13
Z = 26
STRIKE1:
SCREEN 7
O% = 1
LOCATE 5, 13: COLOR 7: PRINT "╔════════════╗"
LOCATE 6, 13: COLOR 7: PRINT "║ STRIKE! ║"
LOCATE 7, 13: COLOR 7: PRINT "╚════════════╝"
LOCATE 5, Y: COLOR 14: PRINT " ═"; CHR$(15)
LOCATE 7, Z: COLOR 14: PRINT CHR$(15); "═ "
LOCATE 9, 13: COLOR 7: PRINT " PRESS SPACE"
Y = Y + 1
Z = Z - 1
IF Y = 25 THEN Y = 13
IF Z = 13 THEN Z = 25
FOR O% = 1 TO 500!
N$ = INKEY$
IF N$ = CHR$(32) THEN COLOR 15: CLS : SCREEN 7: GOTO 999
NEXT O%
GOTO STRIKE1
TIME:
FOR F% = 1 TO 500!
LOCATE 13, 12: PRINT "TIME'S UP!"
NEXT F%
GOTO 999
GAMEOVR:
SCREEN 0: WIDTH 80, 25
IF SCORE% > SCORE1% THEN GOTO HISCORE
CLS
PRINT "TOTAL SCORE:"
PRINT SCORE%
PRINT
GAMEOVR0:
PRINT "CREATED BY JOHN KREITLOW"
PRINT "IN ASSOCIATION WITH RADIUM-V"
PRINT
PRINT "PLAY AGAIN?(Y/N)"
GAMEOVR1:
N$ = INKEY$
IF N$ = CHR$(89) OR N$ = CHR$(121) THEN GOTO 0
IF N$ = CHR$(78) OR N$ = CHR$(110) THEN END
GOTO GAMEOVR1
GAMEND:
CLS
SCREEN 0: WIDTH 80, 25
GOTO GAMEOVR0
END
HISCORE:
PRINT "CONGRATULATIONS! YOU BEAT THE HIGH SCORE!"
PRINT "YOU SHOULD BE ON THE HALL OF FAME."
PRINT
PRINT "OLD HISCORE:"; SCORE1%
PRINT "MADE BY:"; NAME$
PRINT
PRINT "YOUR SCORE:"; SCORE%
SCORE1% = SCORE%
CLOSE #1
OPEN "BOWLING.HSR" FOR OUTPUT AS #2
INPUT "PLEASE ENTER YOUR NAME:", NAME$
WRITE #2, SCORE%, NAME$
CLOSE
GOTO GAMEOVR0
SUB BALLCOLOUR (COL%)
CLS
SCREEN 7
N = 7
M = 5
CIRCLE (35, 10), 10, 1
CIRCLE (75, 10), 10, 2
CIRCLE (115, 10), 10, 3
CIRCLE (155, 10), 10, 4
CIRCLE (195, 10), 10, 5
CIRCLE (235, 10), 10, 12
CIRCLE (275, 10), 10, 14
LOCATE 12, 5: PRINT "PLEASE SELECT YOUR BALL COLOR."
COLOUR1:
FOR R% = 1 TO 500!
LOCATE N, M: PRINT CHR$(127)
COLOR INT(RND * 15) + 1
NEXT R%
COLOR 7
N = N - 1
IF N < 5 THEN LOCATE N + 1, M: PRINT " ": LOCATE N + 2, M: PRINT " ": N = 7
N$ = INKEY$
IF N$ = CHR$(0) + "K" THEN GOTO LEFTCOL1
IF N$ = CHR$(0) + "M" THEN GOTO RIGHTCOL1
IF N$ = CHR$(13) THEN GOTO ENTER
GOTO COLOUR1
LEFTCOL1:
LOCATE N, M: PRINT " "
LOCATE N + 1, M: PRINT " "
LOCATE N + 2, M: PRINT " "
N = 7
M = M - 5
IF M < 5 THEN M = 5
GOTO COLOUR1
RIGHTCOL1:
LOCATE N, M: PRINT " "
LOCATE N + 1, M: PRINT " "
LOCATE N + 2, M: PRINT " "
N = 7
M = M + 5
IF M > 35 THEN M = 35
GOTO COLOUR1
ENTER:
IF M = 5 THEN COL% = 1
IF M = 10 THEN COL% = 2
IF M = 15 THEN COL% = 3
IF M = 20 THEN COL% = 4
IF M = 25 THEN COL% = 5
IF M = 30 THEN COL% = 12
IF M = 35 THEN COL% = 14
END SUB
SCREEN 0
CLS
Q = 23
PINLIN4% = 1
PINLIN3% = 1
PINLIN2% = 1
HEADPIN% = 1
L1:
N% = 1
FOR I% = 1 TO 50!
LOCATE 2, 37: IF PINLIN4% = 1 THEN PRINT "O O O O" ELSE PRINT " "
LOCATE 3, 38: IF PINLIN3% = 1 THEN PRINT "O O O" ELSE PRINT " "
LOCATE 4, 39: IF PINLIN2% = 1 THEN PRINT "O O" ELSE PRINT " "
LOCATE 5, 40: IF HEADPIN% = 1 THEN PRINT "O" ELSE PRINT " "
LOCATE Q, 40: PRINT "0"
NEXT I%
I% = 0
Q = Q - 1
IF Q < 2 THEN GOTO L2
LOCATE Q + 1, 40: PRINT " "
IF Q = 5 THEN HEADPIN% = 0
IF Q = 4 THEN PINLIN2% = 0
IF Q = 3 THEN PINLIN3% = 0
IF Q = 2 THEN PINLIN4% = 0
GOTO L1
L2:
BALLCOLOUR COL%
SCREEN 0: WIDTH 80, 25
CLS
PRINT "BOWLING"
PRINT "CREATED BY JOHN KREITLOW"
PRINT "IN ASSOCIATION WITH rADIUM-V"
LOCATE 1, 12: PRINT COL%
LOCATE 5, 18: PRINT "BASED ON ACME SOFTWARE'S `BOWLIN' FOR THE TI-83"
LOCATE 7, 31: PRINT "PRESS SPACE TO START"
LOCATE 8, 32: PRINT "PRESS ESC TO QUIT"
LOCATE 9, 32: PRINT "╔═══════════════╗"
LOCATE 10, 32: PRINT "║ LANE RULES ║"
LOCATE 11, 32: PRINT "╚═══════════════╝"
PRINT "STRIKE = 30 POINTS"
PRINT "SPARE = 20 POINTS"
PRINT "HIT `ENTER' AT WANTED SPACE ON THE LANE TO SELECT IT."
PRINT "SELECT DESIRED STRENGTH,INDICATED NEAR BASE OF POWER METER. CHOOSE QUICKLY,"
PRINT " BECAUSE YOU WILL MISS A TURN IF YOU TAKE TOO MUCH TIME."
OPEN "BOWLING.HSR" FOR INPUT AS #1
INPUT #1, SCORE1%
INPUT #1, NAME$
PRINT "HI-SCORE:"; SCORE1%; "BY "; NAME$
FOR I% = 1 TO 50
N$ = INKEY$
IF N$ = CHR$(32) THEN GOTO 0
IF N$ = CHR$(27) THEN GOTO GAMEND
I% = 1
NEXT I%
0 SCREEN 7
SCORE% = 0
PIN1% = 1
PIN2% = 1
PIN3% = 1
PIN4% = 1
PIN5% = 1
PIN6% = 1
PIN7% = 1
PIN8% = 1
PIN9% = 1
PIN0% = 1
FOR I% = 1 TO 20
TOP:
N% = 1
SCREEN 7
CLS
IF I% = 1 OR I% = 3 OR I% = 5 OR I% = 7 OR I% = 9 OR I% = 11 OR I% = 13 OR I% = 15 OR I% = 17 OR I% = 19 THEN FRAMEP% = 1
IF I% = 2 OR I% = 4 OR I% = 6 OR I% = 8 OR I% = 10 OR I% = 12 OR I% = 14 OR I% = 16 OR I% = 18 OR I% = 20 THEN FRAMEP% = 2
IF FRAMEP% = 1 OR PIN1% = 1 THEN PIN1% = 1: CIRCLE (70, 10), 5 ELSE IF FRAMEP% = 2 AND PIN1% = 0 THEN CIRCLE (70, 10), 5, 0
IF FRAMEP% = 1 OR PIN2% = 1 THEN PIN2% = 1: CIRCLE (110, 10), 5 ELSE IF FRAMEP% = 2 AND PIN2% = 0 THEN CIRCLE (110, 10), 5, 0
IF FRAMEP% = 1 OR PIN3% = 1 THEN PIN3% = 1: CIRCLE (150, 10), 5 ELSE IF FRAMEP% = 2 AND PIN3% = 0 THEN CIRCLE (150, 10), 5, 0
IF FRAMEP% = 1 OR PIN4% = 1 THEN PIN4% = 1: CIRCLE (190, 10), 5 ELSE IF FRAMEP% = 2 AND PIN4% = 0 THEN CIRCLE (190, 10), 5, 0
IF FRAMEP% = 1 OR PIN5% = 1 THEN PIN5% = 1: CIRCLE (90, 30), 5 ELSE IF FRAMEP% = 2 AND PIN5% = 0 THEN CIRCLE (90, 30), 5, 0
IF FRAMEP% = 1 OR PIN6% = 1 THEN PIN6% = 1: CIRCLE (130, 30), 5 ELSE IF FRAMEP% = 2 AND PIN6% = 0 THEN CIRCLE (130, 30), 5, 0
IF FRAMEP% = 1 OR PIN7% = 1 THEN PIN7% = 1: CIRCLE (170, 30), 5 ELSE IF FRAMEP% = 2 AND PIN7% = 0 THEN CIRCLE (170, 30), 5, 0
IF FRAMEP% = 1 OR PIN8% = 1 THEN PIN8% = 1: CIRCLE (110, 50), 5 ELSE IF FRAMEP% = 2 AND PIN8% = 0 THEN CIRCLE (110, 50), 5, 0
IF FRAMEP% = 1 OR PIN9% = 1 THEN PIN9% = 1: CIRCLE (150, 50), 5 ELSE IF FRAMEP% = 2 AND PIN9% = 0 THEN CIRCLE (150, 50), 5, 0
IF FRAMEP% = 1 OR PIN0% = 1 THEN PIN0% = 1: CIRCLE (130, 70), 5 ELSE IF FRAMEP% = 2 AND PIN0% = 0 THEN CIRCLE (130, 70), 5, 0
LINE (300, 10)-(310, 190), 4, BF
LINE (28, 10)-(28, 190)
LINE (222, 10)-(222, 190)
A = 40
B = 190
C = 190
D = 10
IF I% = 1 OR I% = 2 THEN FRAME% = 1
IF I% = 3 OR I% = 4 THEN FRAME% = 2
IF I% = 5 OR I% = 6 THEN FRAME% = 3
IF I% = 7 OR I% = 8 THEN FRAME% = 4
IF I% = 9 OR I% = 10 THEN FRAME% = 5
IF I% = 11 OR I% = 12 THEN FRAME% = 6
IF I% = 13 OR I% = 14 THEN FRAME% = 7
IF I% = 15 OR I% = 16 THEN FRAME% = 8
IF I% = 17 OR I% = 18 THEN FRAME% = 9
IF I% = 19 OR I% = 20 THEN FRAME% = 10
LOCATE 2, 30: PRINT "SCORE:"
LOCATE 3, 30: PRINT SCORE%
LOCATE 5, 30: PRINT "FRAME:"
LOCATE 6, 30: PRINT FRAME%
1 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, COL%
A = A + 1
IF A > 210 THEN GOTO 2
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO 3
IF N$ = CHR$(27) THEN GOTO GAMEND
GOTO 1
2 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, COL%
A = A - 1
IF A < 40 THEN GOTO 1
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO 3
IF N$ = CHR$(27) THEN GOTO GAMEND
GOTO 2
3 LINE (28, 180)-(222, 200), 0, BF
CIRCLE (A, B), 10, 0
IF A > 30 AND A < 70 THEN A = 50
IF A > 50 AND A < 90 THEN A = 70
IF A > 70 AND A < 110 THEN A = 90
IF A > 90 AND A < 130 THEN A = 110
IF A > 110 AND A < 150 THEN A = 130
IF A > 130 AND A < 170 THEN A = 150
IF A > 150 AND A < 190 THEN A = 170
IF A > 170 AND A < 210 THEN A = 190
IF A > 190 AND A < 240 THEN A = 210
CIRCLE (A, B), 10, COL%
H% = 5
SOUND 400, .5
4 FOR F% = 1 TO 3
LINE (300, C)-(310, C), 2, BF
NEXT F%
C = C - 1
D = D + 1
IF D <= 39 THEN E = 5
IF D >= 39 AND D <= 76 THEN E = 4
IF D >= 77 AND D <= 114 THEN E = 3
IF D >= 115 AND D <= 152 THEN E = 2
IF D >= 153 THEN E = 1
LOCATE 23, 35: PRINT E
IF C = 10 THEN SOUND 400, .5: LINE (300, 10)-(310, 190), 4, BF: C = 190: D = 10: H% = H% - 1
IF H% = 0 THEN GOTO TIME
N$ = INKEY$
IF N$ = CHR$(13) THEN GOTO HIT1
LOCATE 12, 15: PRINT H%
GOTO 4
HIT1:
IF D <= 39 THEN E = 5
IF D >= 39 AND D <= 76 THEN E = 4
IF D >= 77 AND D <= 114 THEN E = 3
IF D >= 115 AND D <= 152 THEN E = 2
IF D >= 153 THEN E = 1
HIT2:
FOR Z% = 1 TO E
CIRCLE (A, B), 10, COL%
CIRCLE (A, B), 10, 0
NEXT Z%
B = B - 1
IF B = -5 THEN GOTO SCORE
GOTO HIT2
SCORE:
IF A = 70 AND PIN1% = 0 THEN P = 0
IF A = 70 AND PIN1% = 1 THEN PIN1% = 0: P = 1
IF A = 90 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN5% = 0: P = 3
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 THEN P = 0
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 1 AND PIN5% = 1 THEN PIN2% = 0: PIN5% = 0: P = 2
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 1 AND PIN2% = 0 AND PIN5% = 1 THEN PIN1% = 0: PIN5% = 0: P = 2
IF A = 90 AND FRAMEP% = 2 AND PIN1% = 1 AND PIN2% = 1 AND PIN5% = 1 THEN PIN1% = 0: PIN2% = 0: PIN5% = 0: P = 3
IF A = 110 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN3% = 0: PIN5% = 0: PIN6% = 0: PIN8% = 0: P = 6
IF A = 110 AND FRAMEP% = 2 AND PIN8% = 0 THEN P = 0
IF A = 110 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 1 AND PIN3% = 1 AND PIN5% = 1 AND PIN6% = 1 AND PIN8% = 1 THEN PIN2% = 0: PIN3% = 0: PIN5% = 0: PIN6% = 0: PIN8% = 0: P = 5
IF A = 110 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 AND PIN8% = 1 AND PIN6% = 1 AND PIN3% = 1 THEN PIN8% = 0: PIN6% = 0: PIN3% = 0: P = 3
IF A = 110 AND FRAMEP% = 2 AND PIN9% = 0 THEN PIN1% = 0: PIN5% = 0: PIN8% = 0: P = 3
IF A = 110 AND FRAMEP% = 2 AND PIN7% = 0 AND PIN9% = 1 THEN PIN8% = 0: PIN1% = 0: PIN2% = 0: PIN5% = 0: PIN6% = 0: P = 5
IF A = 130 AND FRAMEP% = 1 THEN PIN1% = 0: PIN2% = 0: PIN3% = 0: PIN4% = 0: PIN5% = 0: PIN6% = 0: PIN7% = 0: PIN8% = 0: PIN9% = 0: PIN0% = 0: I% = I% + 1: P = 30: GOTO STRIKE
IF A = 130 AND FRAMEP% = 2 THEN SCORE% = SCORE% - P: P = 20: GOTO SPARE
IF A = 150 AND FRAMEP% = 1 THEN PIN2% = 0: PIN3% = 0: PIN4% = 0: PIN6% = 0: PIN7% = 0: PIN9% = 0: P = 6
IF A = 150 AND FRAMEP% = 2 AND PIN9% = 0 THEN P = 0
IF A = 150 AND FRAMEP% = 2 AND PIN4% = 0 AND PIN2% = 1 AND PIN3% = 1 AND PIN7% = 1 AND PIN6% = 1 AND PIN9% = 1 THEN PIN9% = 0: PIN7% = 0: PIN6% = 0: PIN3% = 0: PIN2% = 0: P = 5
IF A = 150 AND FRAMEP% = 2 AND PIN4% = 0 AND PIN3% = 0 AND PIN7% = 0 AND PIN9% = 1 AND PIN6% = 1 AND PIN2% = 1 THEN PIN9% = 0: PIN6% = 0: PIN2% = 0: P = 3
IF A = 150 AND FRAMEP% = 2 AND PIN1% = 0 AND PIN2% = 0 AND PIN5% = 0 THEN PIN3% = 0: PIN4% = 0: PIN6% = 0: PIN7% = 0: PIN9% = 0: P = 5
IF A = 150 AND FRAMEP% = 2 AND PIN8% = 0 THEN PIN9% = 0: PIN7% = 0: PIN4% = 0: P = 3
IF A = 170 AND FRAMEP% = 1 THEN PIN3% = 0: PIN4% = 0: PIN7% = 0: P = 3
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 0 THEN P = 0
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 1 AND PIN3% = 1 AND PIN4% = 0 THEN PIN7% = 0: PIN3% = 0: P = 2
IF A = 170 AND FRAMEP% = 2 AND PIN7% = 1 AND PIN3% = 0 AND PIN4% = 1 THEN PIN7% = 0: PIN4% = 0: P = 2
IF A = 190 AND FRAMEP% = 1 THEN PIN4% = 0: P = 1
IF A = 190 AND FRAMEP% = 2 AND PIN4% = 0 THEN P = 0
IF A = 190 AND FRAMEP% = 2 AND PIN4% = 1 THEN PIN4% = 0: P = 1
IF A > 190 OR A < 70 THEN P = 0
999
SCORE% = SCORE% + P
FOR F% = 1 TO 90!
IF PIN1% = 1 THEN PIN1% = 1: CIRCLE (70, 10), 5 ELSE IF PIN1% = 0 THEN CIRCLE (70, 10), 5, 0
IF PIN2% = 1 THEN PIN2% = 1: CIRCLE (110, 10), 5 ELSE IF PIN2% = 0 THEN CIRCLE (110, 10), 5, 0
IF PIN3% = 1 THEN PIN3% = 1: CIRCLE (150, 10), 5 ELSE IF PIN3% = 0 THEN CIRCLE (150, 10), 5, 0
IF PIN4% = 1 THEN PIN4% = 1: CIRCLE (190, 10), 5 ELSE IF PIN4% = 0 THEN CIRCLE (190, 10), 5, 0
IF PIN5% = 1 THEN PIN5% = 1: CIRCLE (90, 30), 5 ELSE IF PIN5% = 0 THEN CIRCLE (90, 30), 5, 0
IF PIN6% = 1 THEN PIN6% = 1: CIRCLE (130, 30), 5 ELSE IF PIN6% = 0 THEN CIRCLE (130, 30), 5, 0
IF PIN7% = 1 THEN PIN7% = 1: CIRCLE (170, 30), 5 ELSE IF PIN7% = 0 THEN CIRCLE (170, 30), 5, 0
IF PIN8% = 1 THEN PIN8% = 1: CIRCLE (110, 50), 5 ELSE IF PIN8% = 0 THEN CIRCLE (110, 50), 5, 0
IF PIN9% = 1 THEN PIN9% = 1: CIRCLE (150, 50), 5 ELSE IF PIN9% = 0 THEN CIRCLE (150, 50), 5, 0
IF PIN0% = 1 THEN PIN0% = 1: CIRCLE (130, 70), 5 ELSE IF PIN0% = 0 THEN CIRCLE (130, 70), 5, 0
LOCATE 12, 15: PRINT "+"; P
NEXT F%
IF I% = 20 THEN GOTO GAMEOVR
NEXT I%
END
'-----------------------------------------------------------------------------
SPARE:
CLS
Y = 13
Z = 26
SPARE1:
SCREEN 7
O% = 1
LOCATE 5, 13: COLOR 7: PRINT "╔════════════╗"
LOCATE 6, 13: COLOR 7: PRINT "║ SPARE! ║"
LOCATE 7, 13: COLOR 7: PRINT "╚════════════╝"
LOCATE 5, Y: COLOR 4: PRINT " ═"; CHR$(15)
LOCATE 7, Z: COLOR 4: PRINT CHR$(15); "═ "
LOCATE 9, 13: COLOR 7: PRINT " PRESS SPACE"
Y = Y + 1
Z = Z - 1
IF Y = 25 THEN Y = 13
IF Z = 13 THEN Z = 25
FOR O% = 1 TO 500!
N$ = INKEY$
IF N$ = CHR$(32) THEN COLOR 15: CLS : SCREEN 7: GOTO 999
NEXT O%
GOTO SPARE1
GOTO 999
STRIKE:
CLS
Y = 13
Z = 26
STRIKE1:
SCREEN 7
O% = 1
LOCATE 5, 13: COLOR 7: PRINT "╔════════════╗"
LOCATE 6, 13: COLOR 7: PRINT "║ STRIKE! ║"
LOCATE 7, 13: COLOR 7: PRINT "╚════════════╝"
LOCATE 5, Y: COLOR 14: PRINT " ═"; CHR$(15)
LOCATE 7, Z: COLOR 14: PRINT CHR$(15); "═ "
LOCATE 9, 13: COLOR 7: PRINT " PRESS SPACE"
Y = Y + 1
Z = Z - 1
IF Y = 25 THEN Y = 13
IF Z = 13 THEN Z = 25
FOR O% = 1 TO 500!
N$ = INKEY$
IF N$ = CHR$(32) THEN COLOR 15: CLS : SCREEN 7: GOTO 999
NEXT O%
GOTO STRIKE1
TIME:
FOR F% = 1 TO 500!
LOCATE 13, 12: PRINT "TIME'S UP!"
NEXT F%
GOTO 999
GAMEOVR:
SCREEN 0: WIDTH 80, 25
IF SCORE% > SCORE1% THEN GOTO HISCORE
CLS
PRINT "TOTAL SCORE:"
PRINT SCORE%
GAMEOVR0:
PRINT "CREATED BY JOHN KREITLOW"
PRINT "IN ASSOCIATION WITH RADIUM-V"
PRINT "PLAY AGAIN?(Y/N)"
GAMEOVR1:
N$ = INKEY$
IF N$ = CHR$(89) OR N$ = CHR$(121) THEN GOTO 0
IF N$ = CHR$(78) OR N$ = CHR$(110) THEN END
GOTO GAMEOVR1
GAMEND:
CLS
SCREEN 0: WIDTH 80, 25
GOTO GAMEOVR0
END
HISCORE:
PRINT "CONGRATULATIONS! YOU BEAT THE HIGH SCORE!"
PRINT "YOU SHOULD BE ON THE HALL OF FAME."
PRINT "OLD HISCORE:"; SCORE1%
PRINT "MADE BY:"; NAME$
PRINT "YOUR SCORE:"; SCORE%
SCORE1% = SCORE%
CLOSE #1
OPEN "BOWLING.HSR" FOR OUTPUT AS #2
INPUT "PLEASE ENTER YOUR NAME:", NAME$
WRITE #2, SCORE%, NAME$
CLOSE
GOTO GAMEOVR0
SUB BALLCOLOUR (COL%)
CLS
SCREEN 7
N = 7
M = 5
CIRCLE (35, 10), 10, 1
CIRCLE (75, 10), 10, 2
CIRCLE (115, 10), 10, 3
CIRCLE (155, 10), 10, 4
CIRCLE (195, 10), 10, 5
CIRCLE (235, 10), 10, 12
CIRCLE (275, 10), 10, 14
LOCATE 12, 5: PRINT "PLEASE SELECT YOUR BALL COLOR."
COLOUR1:
FOR R% = 1 TO 500!
LOCATE N, M: PRINT CHR$(127)
COLOR INT(RND * 15) + 1
NEXT R%
COLOR 7
N = N - 1
IF N < 5 THEN LOCATE N + 1, M: PRINT " ": LOCATE N + 2, M: PRINT " ": N = 7
N$ = INKEY$
IF N$ = CHR$(0) + "K" THEN GOTO LEFTCOL1
IF N$ = CHR$(0) + "M" THEN GOTO RIGHTCOL1
IF N$ = CHR$(13) THEN GOTO ENTER
GOTO COLOUR1
LEFTCOL1:
LOCATE N, M: PRINT " "
LOCATE N + 1, M: PRINT " "
LOCATE N + 2, M: PRINT " "
N = 7
M = M - 5
IF M < 5 THEN M = 5
GOTO COLOUR1
RIGHTCOL1:
LOCATE N, M: PRINT " "
LOCATE N + 1, M: PRINT " "
LOCATE N + 2, M: PRINT " "
N = 7
M = M + 5
IF M > 35 THEN M = 35
GOTO COLOUR1
ENTER:
IF M = 5 THEN COL% = 1
IF M = 10 THEN COL% = 2
IF M = 15 THEN COL% = 3
IF M = 20 THEN COL% = 4
IF M = 25 THEN COL% = 5
IF M = 30 THEN COL% = 12
IF M = 35 THEN COL% = 14
END SUB







Author



Logged
: )


