'===========================================================================
' Subject: BREAKOUT                           Date: 06-11-96 (13:59)       
'  Author: John Wantland                      Code: QB, QBasic, PDS        
'  Origin: kwantlan@coffey.com              Packet: GAMES.ABC
'===========================================================================
REM breakout
l = 3
p = 0
SCREEN 12: CLS
' Sorry the points and lives text is so small, but it's the only way I could
' fit it on.
CLS : LOCATE 1, 36: PRINT "Breakout"
LOCATE 2, 32: PRINT "by John Wantland"
PRINT
PRINT "To play, just bounce the ball off of your paddle to knock out the blocks."
PRINT "You get points for each block you knock out. You also have 3 lives. "
PRINT "Use the left and right arrow keys to move your paddle."
2 PRINT "Press a key to continue."
DO
a$ = INKEY$: IF a$ <> "" THEN EXIT DO
n = n + 1
LOOP
RANDOMIZE n
j = 120
WIDTH 80, 60
x = 75
y = 40
PAINT (320, 240), 8, 8
LINE (x, y)-(x + 500, y + 150), 0, B
FOR t = 100 TO 575 STEP 25
LINE (t, y)-(t, y + 200), 0
NEXT t
FOR t = y + 25 TO y + 125 STEP 25
LINE (x, t)-(x + 500, t), 0
NEXT t
FOR t = 1 TO 120
1 IF RND < .1 THEN c = INT(RND * 15 + 1):  ELSE c = 8
IF c = 1 THEN 1
PAINT (x + 5, y + 5), c, 0
x = x + 25: IF x >= 575 THEN x = 75: y = y + 25
NEXT t
PAINT (300, 400), 0, 0
x = 320
y = 300
d = 1
m = INT(RND * 2 + 1)
x1 = 280
y1 = 420
n = 3
DO
PAINT (x, y), 0
LINE (4, 4)-(636, 440), 1, B
LINE (x1, y1)-(x1 + 80, y1 + 10), 0, BF
LOCATE 57, 1: PRINT "Lives"; l
LOCATE 57, 20: PRINT "Points"; p
a$ = INKEY$
IF a$ = CHR$(0) + CHR$(75) AND x1 > 5 THEN x1 = x1 - 5
IF a$ = CHR$(0) + CHR$(77) AND x1 + 80 < 635 THEN x1 = x1 + 5
IF d = 1 THEN y = y - 3
IF d = 2 THEN y = y + 3
IF m = 1 THEN x = x - 3
IF m = 2 THEN x = x + 3
IF y >= y1 THEN GOSUB newlife:
LINE (x1, y1)-(x1 + 80, y1 + 10), 1, BF
CIRCLE (x, y), 5, 15
PAINT (x, y), 15
IF POINT(x, y + 9) = 8 THEN d = 1: p = p + 10: j = j - 1: PAINT (x, y + 9), 0
IF POINT(x, y - 9) = 8 THEN d = 2: p = p + 10: j = j - 1: PAINT (x, y - 9), 0
IF POINT(x + 9, y) = 8 THEN m = 1: p = p + 10: j = j - 1: PAINT (x + 9, y), 0
IF POINT(x - 9, y) = 8 THEN m = 2: p = p + 10: j = j - 1: PAINT (x - 9, y), 0
IF POINT(x + 9, y + 9) = 8 THEN d = 1: m = 1: p = p + 10: j = j - 1: PAINT (x + 9, y + 9), 0
IF POINT(x - 9, y - 9) = 8 THEN d = 2: m = 2: p = p + 10: j = j - 1: PAINT (x - 9, y - 9), 0
IF POINT(x + 9, y - 9) = 8 THEN m = 1: d = 2: p = p + 10: j = j - 1: PAINT (x + 9, y - 9), 0
IF POINT(x - 9, y + 9) = 8 THEN m = 2: d = 1: p = p + 10: j = j - 1: PAINT (x - 9, y + 9), 0
IF POINT(x, y + 9) > 1 AND POINT(x, y + 9) <> 8 THEN d = 1: PAINT (x, y + 9), 8, 0
IF POINT(x, y - 9) > 1 AND POINT(x, y - 9) <> 8 THEN d = 2: PAINT (x, y - 9), 8, 0
IF POINT(x + 9, y) > 1 AND POINT(x + 9, y) <> 8 THEN m = 1: PAINT (x + 9, y), 8, 0
IF POINT(x - 9, y) > 1 AND POINT(x - 9, y) <> 8 THEN m = 2: PAINT (x - 9, y), 8, 0
IF POINT(x + 9, y + 9) > 1 AND POINT(x + 7, y + 9) <> 8 THEN d = 1: m = 1: PAINT (x + 9, y + 9), 8, 0
IF POINT(x - 9, y - 9) > 1 AND POINT(x - 7, y - 9) <> 8 THEN d = 2: m = 2: PAINT (x - 9, y - 9), 8, 0
IF POINT(x + 9, y - 9) > 1 AND POINT(x + 9, y - 9) <> 8 THEN m = 1: d = 2: PAINT (x + 9, y - 9), 8, 0
IF POINT(x - 9, y + 9) > 1 AND POINT(x - 9, y + 9) <> 8 THEN m = 2: d = 1: PAINT (x - 9, y + 9), 8, 0
IF POINT(x, y + 9) = 1 THEN d = 1: IF x <= x1 + 40 THEN m = 2:  ELSE m = 1
IF POINT(x, y - 11) = 1 THEN d = 2
IF POINT(x - 10, y) = 1 THEN m = 2
IF POINT(x + 10, y) = 1 THEN m = 1
IF POINT(x - 11, y - 11) = 1 THEN d = 2
IF POINT(x + 11, y - 11) = 1 THEN d = 2
IF j <= 0 THEN 2
FOR t = 1 TO 200: NEXT t
LOOP
newlife: l = l - 1: IF l <= 0 THEN GOTO die:
LOCATE 58, 1: PRINT "Press the Spacebar to continue."
DO
a$ = INKEY$: IF a$ = " " THEN EXIT DO
LOOP
LOCATE 58, 1: PRINT "                               "
PAINT (x, y), 0
x = 320: y = 300: d = 1: n = 3
RETURN
die: CLS
LOCATE 30, 36: PRINT "Game over"
LOCATE 31, 36: PRINT "Final score"; p
LOCATE 32, 36: PRINT "Play again"; : INPUT y$
IF y$ = "y" OR y$ = "Y" THEN RUN
END
