' ' ' Pong ' ' ' DECLARE SUB Playgame () DECLARE SUB MainMenu () DECLARE SUB GetSpeed () DECLARE SUB Graphics () DIM SHARED happy(250) DIM SHARED nothing(250) DIM SHARED speed AS SINGLE RANDOMIZE TIMER CALL MainMenu SUB GetSpeed CLS PRINT "" PRINT " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT " ³ HOW FAST R YOU? ³" PRINT " ³ ----------------- ³" PRINT " ³ 1: Slow Minded ³" PRINT " ³ 2: Not Too Bad ³" PRINT " ³ 3: Supa' Fast ³" PRINT " ³ 4: Um, Excuse Me? ³" PRINT " ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" e = 0 DO LOCATE 11, 14 INPUT "Pick A Speed!!", e IF e = 1 THEN speed = 300 IF e = 2 THEN speed = 150 IF e = 3 THEN speed = 70 IF e = 4 THEN speed = 5 LOOP UNTIL e <> 0 speed = speed * 100 CALL Graphics CALL Playgame END SUB SUB Graphics CLS : SCREEN 12 CIRCLE (50, 50), 20, 14: PAINT (50, 50), 14 CIRCLE (42, 42), 3, 0: CIRCLE (58, 42), 3, 0 CIRCLE (50, 50), 14, 0, 3.124, 0 GET (30, 30)-(70, 70), happy CLS GET (30, 30)-(70, 70), nothing END SUB SUB MainMenu CLS : SCREEN 12 Menu: COLOR 15 CLS PRINT "" PRINT " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT " ³ PONG"; CHR$(19); CHR$(19); CHR$(19); " ³" PRINT " ³ --------- ³" PRINT " ³ 1: Play!! ³" PRINT " ³ 2: Instructions ³" PRINT " ³ 3: Exit ³" PRINT " ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" DO LOCATE 11, 14 INPUT "Type A Number!! ", a IF a = 1 THEN GetSpeed IF a = 2 THEN GOSUB Instructions IF a = 3 THEN GOSUB MenuQuit LOOP Instructions: CLS : COLOR 6 LOCATE 5, 1 PRINT _ "To play pong (a two player game), the person on the left uses a to go up and z to go down. The person on the right uses ' to go up and / to go down. To quit the game at any time, press q. In the game you both have 5 lives. Whoever loses all their lives first, loses. That's It." _ SLEEP GOSUB Menu MenuQuit: COLOR 3 CLS LOCATE 13, 36 PRINT "BYE,BYE!" SLEEP 2 SYSTEM END SUB SUB Playgame CLS : SCREEN 12 upr% = 200: upl% = 200 ballo% = 300 ballu% = 220 ll% = 5: rl% = 5 dir = INT(RND * 4) + 1 LINE (5, upl%)-(20, upl% + 80), 10, BF LINE (620, upr%)-(635, upr% + 80), 4, BF COLOR 14: LOCATE 2, 1 PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" DO upr2% = upr%: upl2% = upl% WAIT &H3DA, 8 key$ = INKEY$ SELECT CASE key$ CASE "a" upl% = upl% - 30 IF upl% < 24 THEN upl% = 24 CASE "z" upl% = upl% + 30 IF upl% > 399 THEN upl% = 399 END SELECT LINE (5, upl2%)-(20, upl2% + 80), 0, BF LINE (5, upl%)-(20, upl% + 80), 10, BF SELECT CASE key$ CASE "'" upr% = upr% - 30 IF upr% < 24 THEN upr% = 24 CASE "/" upr% = upr% + 30 IF upr% > 399 THEN upr% = 399 END SELECT LINE (620, upr2%)-(635, upr2% + 80), 0, BF LINE (620, upr%)-(635, upr% + 80), 4, BF ballo2% = ballo%: ballu2% = ballu% IF dir = 1 THEN ballo% = ballo% + 21: ballu% = ballu% - 21 IF dir = 2 THEN ballo% = ballo% - 21: ballu% = ballu% - 21 IF dir = 3 THEN ballo% = ballo% - 21: ballu% = ballu% + 21 IF dir = 4 THEN ballo% = ballo% + 21: ballu% = ballu% + 21 IF dir = 1 AND ballo% > 580 AND (ballu% > upr% + 75 OR ballu% < upr% - 35) THEN GOSUB RightFault IF dir = 2 AND ballo% < 25 AND (ballu% > upl% + 75 OR ballu% < upl% - 35) THEN GOSUB LeftFault IF dir = 3 AND ballo% < 25 AND (ballu% > upl% + 75 OR ballu% < upl% - 35) THEN GOSUB LeftFault IF dir = 4 AND ballo% > 580 AND (ballu% > upr% + 75 OR ballu% < upr% - 35) THEN GOSUB RightFault IF dir = 1 AND ballu% < 32 THEN dir = 4 IF dir = 2 AND ballu% < 32 THEN dir = 3 IF dir = 3 AND ballu% > 400 THEN dir = 2 IF dir = 4 AND ballu% > 400 THEN dir = 1 IF dir = 1 AND ballo% > 580 THEN dir = 2 IF dir = 2 AND ballo% < 25 THEN dir = 1 IF dir = 3 AND ballo% < 25 THEN dir = 4 IF dir = 4 AND ballo% > 580 THEN dir = 3 PUT (ballo2%, ballu2%), nothing, PSET PUT (ballo%, ballu%), happy FOR i! = 1 TO speed NEXT i! LOCATE 1, 1: PRINT "Lives:"; ll% LOCATE 1, 71: PRINT "Lives:"; rl% LOOP UNTIL key$ = CHR$(27) END RightFault: PUT (ballo2%, ballu2%), nothing, PSET PUT (ballo%, ballu%), happy rl% = rl% - 1 IF rl% = 0 THEN LOCATE 1, 71: PRINT "Lives:"; rl%: won$ = "Left": GOSUB EndGame COLOR 4: LOCATE 10, 34: PRINT "Right fault!" COLOR 14: LOCATE 11, 34: PRINT "Press Enter" WHILE INKEY$ <> CHR$(13): WEND LOCATE 10, 34: PRINT " " LOCATE 11, 34: PRINT " " RETURN LeftFault: PUT (ballo2%, ballu2%), nothing, PSET PUT (ballo%, ballu%), happy ll% = ll% - 1 IF ll% = 0 THEN LOCATE 1, 1: PRINT "Lives:"; ll%: won$ = "Right": GOSUB EndGame COLOR 4: LOCATE 10, 34: PRINT "Left fault!!" COLOR 14: LOCATE 11, 34: PRINT "Press Enter" WHILE INKEY$ <> CHR$(13): WEND LOCATE 10, 34: PRINT " " LOCATE 11, 34: PRINT " " RETURN EndGame: CLS : COLOR 15: LOCATE 10, 18 PRINT won$ + "player won!!! Press Enter to continue!!!!" WHILE INKEY$ <> CHR$(13): WEND CALL MainMenu END SUB