Ping Pong
REM B-MAN
REM 3-27-1995
REM
SCREEN 9
REM ------------------------OPTIONS-------------------------------------
OPTIONS:
PONG% = 0
COLOR 15, 4
CIRCLE (50, 50), 25
PAINT (50, 50), 15
CIRCLE (500, 125), 25
PAINT (500, 125), 15
CIRCLE (75, 300), 25
PAINT (75, 300), 15
LINE (150, 50)-(450, 217), 15, B
LINE (145, 45)-(455, 222), 15, B
PAINT (146, 46), 15
LOCATE 5, 34: PRINT "P O N G"
LOCATE 7, 29: PRINT "1. Playin Surface"
LOCATE 9, 29: PRINT "2. Skill Level"
LOCATE 11, 29: PRINT "3. Instructions"
LOCATE 13, 29: PRINT "4. Enter the Courts"
LOCATE 15, 29: PRINT "5. Wimp Out and Leave!"
DO WHILE PONG% < 1 OR PONG% > 5
PONG$ = INKEY$
PONG% = VAL(PONG$)
LOOP
SELECT CASE PONG%
CASE 1
GOSUB CL.SC
LOCATE 5, 30: PRINT "(PLAYING SURFACE)"
LOCATE 7, 33: PRINT "1. Clay"
LOCATE 9, 33: PRINT "2. Grass"
LOCATE 11, 33: PRINT "3. Asphault"
LOCATE 13, 33: PRINT "4. Traditional"
SURFACE% = 0
DO WHILE SURFACE% < 1 OR SURFACE% > 4
SURFACE$ = INKEY$
SURFACE% = VAL(SURFACE$)
LOOP
SELECT CASE SURFACE%
CASE 1
SURFACE% = 20
CASE 2
SURFACE% = 34
CASE 3
SURFACE% = 24
CASE 4
SURFACE% = 0
END SELECT
GOSUB CL.SC
GOTO OPTIONS
CASE 2
GOSUB CL.SC
LOCATE 5, 30: PRINT "(SKILL LEVEL)"
LOCATE 7, 33: PRINT "1. Beginner"
LOCATE 9, 33: PRINT "2. Intermediant"
LOCATE 11, 33: PRINT "3. Expert"
DO WHILE SKILL% < 1 OR SKILL% > 3
SKILL$ = INKEY$
SKILL% = VAL(SKILL$)
LOOP
SELECT CASE SKILL%
CASE 1
SKILL% = 100
CASE 2
SKILL% = 50
CASE 3
SKILL% = 1
END SELECT
GOSUB CL.SC
GOTO OPTIONS
CASE 3
GOTO INSTRUCTIONS
CASE 4
BEEP
CASE 5
CLS : SYSTEM
END SELECT
COLOR 15, SURFACE%
CLS
DIM BALL%(100, 100)
CIRCLE (100, 100), 5, 1
PAINT (101, 101), 15, 1
GET (95, 95)-(105, 105), BALL%
REM ---------------------------DRAW PADDLES----------------------------------
DIM P1P%(100, 100), P2P%(100, 100), COURT%(100, 100)
FOR X = 100 TO 104
FOR y = 100 TO 130
PSET (X, y)
NEXT y
NEXT X
GET (100, 100)-(104, 130), P1P%
GET (100, 100)-(104, 130), P2P%
CLS
REM ------------------------DRAW COURT-------------------------------------
REM -----------------------------------------------------------------------
FOR C = 1 TO 80
LOCATE 3, C
PRINT CHR$(220)
LOCATE 23, C
PRINT CHR$(223)
NEXT C
FOR C = 4 TO 22
LOCATE C, 1
PRINT CHR$(219)
LOCATE C, 80
PRINT CHR$(219)
NEXT C
FOR N = 4 TO 22
LOCATE N, 40
PRINT CHR$(176)
NEXT N
REM -------------------------------------------------------------------------
REM ------------------------------------------------------------------------
REM -------------------------------------------------------------------------
REM -------------------------START GAME--------------------------------------
START.GAME:
KEY OFF
'----------------------------------------------------------------------------
'---------------------TEST VARIABLES-----------------------------------------
T = 45
B = 293
D = 6
E = 20
IF SCORE1% = 21 THEN
LOCATE 2, 7: PRINT "Almost as good as me!"
LOCATE 2, 38: PRINT "B-Match"
DO
A$ = INKEY$
LOOP UNTIL A$ <> ""
CLS
CLEAR
GOTO OPTIONS
ELSEIF SCORE2% = 21 THEN
LOCATE 2, 65: PRINT "Almost as good as me!"
LOCATE 2, 38: PRINT "B-Match"
DO
A$ = INKEY$
LOOP UNTIL A$ <> ""
CLS
CLEAR
GOTO OPTIONS
END IF
LOCATE 2, 1: PRINT SPC(79);
SCORE1% = 0
SCORE2% = 0
LOCATE 2, 2: PRINT SCORE1%
LOCATE 2, 78: PRINT SCORE2%
'----------------------------------------------------------------------------
GOSUB SERVE
DO
A$ = INKEY$
IF A$ = "X" OR A$ = "x" THEN
CLS : CLEAR : GOTO OPTIONS
END IF
IF A$ = CHR$(0) + CHR$(59) OR A$ = CHR$(0) + CHR$(60) OR A$ = CHR$(0) + CHR$(133) OR A$ = CHR$(0) + CHR$(134) THEN
GOSUB PAD.CTR
END IF
IF BP% = 0 AND ABP% = 0 AND YBP% > T AND XBP% < X2 - E THEN
LINE (XBP%, YBP%)-(XBP% + 10, YBP% + 10), 0, BF
XBP% = XBP% + 10
YBP% = YBP% - 3
GOSUB PLACE.BALL
ELSEIF BP% = 0 AND ABP% = 1 AND YBP% > T AND XBP% < X2 - E THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF
XBP% = XBP% + 10
GOSUB PLACE.BALL
ELSEIF BP% = 0 AND ABP% = 2 AND YBP% > T AND YBP% < B AND XBP% >< X2 - E THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF '*******
XBP% = XBP% + 10
YBP% = YBP% + 3
GOSUB PLACE.BALL
ELSEIF BP% = 0 AND YBP% ><= T AND XBP% >< X2 - E THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF
ABP% = 2
XBP% = XBP% + 10
YBP% = YBP% + 3
SOUND .001, .1
GOSUB PLACE.BALL
ELSEIF BP% = 0 AND YBP% >= B AND XBP% < X2 - E THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF
ABP% = 0
XBP% = XBP% + 10
YBP% = YBP% - 3
SOUND .001, .1
GOSUB PLACE.BALL
ELSEIF BP% = 0 AND XBP% >= X2 - E THEN
GOSUB SCORE.PAD
ELSEIF BP% = 1 AND ABP% = 0 AND YBP% > T AND XBP% > X1 + D THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF
XBP% = XBP% - 10
YBP% = YBP% - 3
GOSUB PLACE.BALL
ELSEIF BP% = 1 AND ABP% = 1 AND YBP% > T AND XBP% > X1 + D THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, BF
XBP% = XBP% - 10
GOSUB PLACE.BALL
ELSEIF BP% = 1 AND ABP% = 2 AND YBP% > T AND YBP% < B AND XBP% > X1 + D THEN
LINE (XBP%, YBP%)-(XBP% + 14, YBP% + 14), 0, |