'=========================================================================== ' Subject: SUPER PANG! (LIKE PONG) Date: 01-01-97 (00:00) ' Author: Cheng-ning Pu Code: QB, QBasic, PDS ' Origin: pu@carib-link.net Packet: GAMES.ABC '=========================================================================== ' ' S U P E R P A N G '96 ' ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ ' ' SHAREWARE V1.0 '   '  WARNING  ! This program only run under the speed of 120-133 Mz '   otherwise please change the number in the sub ' "DELAY" ' ' ' ' HEAD PROGRAMMER : Cheng-ning Pu ' GRAPHIC : Cheng-ning Pu ' ' ! Contact the programmer (pu@carib-link.net) for the double player ' ! version ' DECLARE SUB delay () ON PLAY(1) GOSUB mus PLAY ON PLAY "mb O2 L8G L16EE L8D#EG L16EE L8D#EGEGEGEGE" RANDOMIZE TIMER score1 = 0 score2 = 0 DIM SHARED player1, player2, x, y SCREEN 9 CLS LOCATE 1, 30: PRINT "S U P E R P A N G !" FOR j = 30 TO 600 STEP 10 FOR i = 1 TO 15 STEP 3 CIRCLE (j, 30), i NEXT i NEXT j 'FOR j = 30 TO 300 STEP 10 'FOR i = 1 TO 15 STEP 3 'CIRCLE (30, j), i 'NEXT i 'NEXT j FOR j = 30 TO 600 STEP 10 FOR i = 1 TO 15 STEP 3 CIRCLE (j, 300), i NEXT i NEXT j 'FOR j = 30 TO 300 STEP 10 'FOR i = 1 TO 15 STEP 3 'CIRCLE (600, j), i 'NEXT i 'NEXT j x = 300 y = 150 up = 0 down = 1 right = 1 r = 1 u = 1 player1 = 150 player2 = 150 LINE (60, player1)-(60, player1 + 30), 14 LINE (570, player2)-(570, player2 + 30), 14 DO IF right = 1 THEN x = x + r ELSE x = x - r IF down = 1 THEN y = y + u ELSE y = y - u CIRCLE (x, y), 3, 7 IF y > 280 THEN down = 0 up = 1 r = INT(RND * 5) + 1 END IF IF y < 45 THEN down = 1 up = 0 r = INT(RND * 5) + 1 END IF IF x > 570 THEN right = 0 u = INT(RND * 5) + 1 IF y < player2 OR y > player2 + 35 THEN FOR j = 1 TO 3 FOR i = 50 TO 200 STEP 5 'SOUND i, .1 NEXT i NEXT j score1 = score1 + 1 LOCATE 10, 30: PRINT "PLAYER 1 WIN! " LOCATE 11, 30: PRINT "press ..." SLEEP 100 k$ = INKEY$ IF k$ <> " " THEN GOTO 100 LOCATE 10, 30: PRINT " " LOCATE 11, 30: PRINT " " END IF END IF IF x < 60 THEN right = 1 u = INT(RND * 5) + 1 IF y < player1 OR y > player1 + 35 THEN FOR j = 1 TO 3 FOR i = 50 TO 200 STEP 5 'SOUND i, .1 NEXT i NEXT j score2 = score2 + 1 LOCATE 10, 30: PRINT "PLAYER 2 WIN" LOCATE 11, 30: PRINT "press .." SLEEP DO k$ = INKEY$ LOOP UNTIL k$ = " " LOCATE 10, 30: PRINT " " LOCATE 11, 30: PRINT " " END IF END IF CALL delay CIRCLE (x, y), 3, 0 LOCATE 1, 1: PRINT "SCORE : "; score1 LOCATE 1, 70: PRINT "SCORE : "; score2 IF score1 = 9 OR score2 = 9 THEN LOCATE 7, 15: PRINT "SCORE : "; score1 LOCATE 7, 59: PRINT "SCORE : "; score2 LOCATE 10, 34: PRINT "PLAYER "; IF score1 > score2 THEN PRINT "1 WIN!" ELSE PRINT "2 WIN!" END END IF k$ = INKEY$ IF k$ <> "" THEN SELECT CASE k$ CASE CHR$(0) + "H" 'IF player1 > 45 THEN player1 = player1 - 30 CASE CHR$(0) + "P" 'IF player1 < 255 THEN player1 = player1 + 30 CASE "w", "W" IF player2 > 45 THEN player2 = player2 - 30 CASE "S", "s" IF player2 < 255 THEN player2 = player2 + 30 END SELECT LINE (60, 25)-(60, 275 + 30), 0 LINE (570, 25)-(570, 275 + 30), 0 LINE (60, player1)-(60, player1 + 30), 14 LINE (570, player2)-(570, player2 + 30), 14 END IF IF player1 > 45 AND player1 + 10 > y THEN player1 = player1 - 10 IF player1 < 255 AND player1 + 10 < y THEN player1 = player1 + 10 LINE (60, 25)-(60, 275 + 30), 0 LINE (60, player1)-(60, player1 + 30), 14 LOOP mus: PLAY "mb O2 L8G L16EE L8D#EG L16EE L8D#EGEGEGEGE" RETURN SUB delay FOR i = 1 TO 600 k$ = INKEY$ IF k$ <> "" THEN SELECT CASE k$ CASE "w", "W" 'IF player1 > 45 THEN player1 = player1 - 10 CASE "S", "s" 'IF player1 < 255 THEN player1 = player1 + 10 CASE CHR$(0) + "H" IF player2 > 45 THEN player2 = player2 - 10 CASE CHR$(0) + "P" IF player2 < 255 THEN player2 = player2 + 10 END SELECT LINE (60, 25)-(60, 275 + 30), 0 LINE (570, 25)-(570, 275 + 30), 0 LINE (60, player1)-(60, player1 + 30), 14 LINE (570, player2)-(570, player2 + 30), 14 END IF IF i MOD 200 = 0 THEN IF player1 > 45 AND player1 + 10 > y THEN player1 = player1 - 10 LINE (60, 25)-(60, 275 + 30), 0 LINE (60, player1)-(60, player1 + 30), 14 END IF IF player1 < 255 AND player1 + 10 < y THEN player1 = player1 + 10 LINE (60, 25)-(60, 275 + 30), 0 LINE (60, player1)-(60, player1 + 30), 14 END IF END IF NEXT i END SUB