'===========================================================================
' Subject: GAME OF PONG                       Date: 06-05-96 (09:57)       
'  Author: John Wantland                      Code: QB, QBasic, PDS        
'  Origin: kwantlan@coffey.com              Packet: GAMES.ABC
'===========================================================================
0 REM pong
CLS
PRINT "Let's play a game of pong. First one to ten wins."
PRINT "Use arrow keys to move"
PRINT "Press a key to continue"
DO
a$ = INKEY$: IF a$ <> "" THEN EXIT DO
LOOP
d = INT(RND * 2 + 1)
m = INT(RND * 2)
p = 0
cp = 0
SCREEN 7: CLS
LINE (1, 1)-(319, 175), 9, B
y = 160
x = 100
y1 = 160
x1 = 170
y2 = 160
x2 = 2
1 LINE (y2, x2)-(y2 + 30, x2 + 4), 2, BF
LINE (y1, x1)-(y1 + 30, x1 + 4), 4, BF
LINE (1, 1)-(319, 175), 9, B
PAINT (y, x), 0, 0
IF m = 0 THEN y = y
IF m = 2 THEN y = y + 1
IF m = 1 THEN y = y - 1
IF d = 1 THEN x = x + 1
IF d = 2 THEN x = x - 1
CIRCLE (y, x), 2, 15
PAINT (y, x), 15, 15
IF (y >= 6 AND y <= 316) AND (x = 5 OR x = 171) THEN m = INT(RND * 2)
IF (x >= 4 AND x <= 175) AND (y = 5 OR y = 317) THEN d = INT(RND * 2 + 1)
IF y <= 5 THEN m = 2
IF y >= 315 THEN m = 1
IF x <= 5 THEN d = 1
IF x >= 172 THEN d = 2
LOCATE 23, 1: PRINT "Points"; p
LOCATE 23, 10: PRINT "Computer points"; cp
IF p >= 10 THEN 2
IF cp >= 10 THEN 3
a$ = INKEY$
IF a$ = CHR$(0) + CHR$(75) AND y1 > 5 THEN
LINE (y1, x1)-(y1 + 30, x1 + 4), 0, BF
y1 = y1 - 5
LINE (y1, x1)-(y1 + 30, x1 + 4), 4, BF
END IF
IF a$ = CHR$(0) + CHR$(77) AND y1 < 286 THEN
LINE (y1, x1)-(y1 + 30, x1 + 4), 0, BF
y1 = y1 + 5
LINE (y1, x1)-(y1 + 30, x1 + 4), 4, BF
END IF
LINE (y1, x1)-(y1 + 30, x1 + 4), 4, BF
IF RND < .4 THEN
SELECT CASE y
CASE IS = y2
y2 = y2
LINE (y2, x2)-(y2 + 30, x2 + 4), 2, BF
GOTO nex:
CASE IS < y2
IF y2 > 4 THEN
LINE (y2, x2)-(y2 + 30, x2 + 4), 0, BF
y2 = y2 - 5
LINE (y2, x2)-(y2 + 30, x2 + 4), 2, BF
GOTO nex:
END IF
CASE IS > y2
IF y2 < 286 THEN
LINE (y2, x2)-(y2 + 30, x2 + 4), 0, BF
y2 = y2 + 5
LINE (y2, x2)-(y2 + 30, x2 + 4), 2, BF
END IF
nex: END SELECT
END IF
IF POINT(y, x - 4) = 2 THEN
IF y < y2 + 15 THEN m = 1
IF y = y2 + 15 THEN m = 0
IF y > y2 + 15 THEN m = 2
d = 1
GOTO 1
END IF
IF POINT(y, x + 4) = 4 THEN
IF y < y1 + 15 THEN m = 1
IF y = y1 + 15 THEN m = 0
IF y > y1 + 15 THEN m = 2
d = 2
GOTO 1
END IF
IF x > x1 THEN
cp = cp + 1
m = INT(RND * 2)
d = 2
x = 100
y = 160
CLS
GOTO 1
END IF
IF x < x2 + 4 THEN
p = p + 1
m = INT(RND * 2)
d = 1
x = 100
y = 160
CLS
GOTO 1
END IF
FOR t = 1 TO 50: NEXT t
GOTO 1
2 CLS
SCREEN 0
WIDTH 80, 25
LOCATE 12, 30: PRINT "You win!!!!!"
GOTO 4
3 CLS
SCREEN 0
WIDTH 80, 25
LOCATE 12, 30: PRINT "I win!!!!!"
4 PRINT "Want to play again"; : INPUT y$
IF y$ = "y" OR y$ = "Y" THEN 0

