'=========================================================================== ' Subject: ARCADE BLOCKS GAME Date: 11-17-99 (00:25) ' Author: A. Bresler Code: QB, QBasic, PDS ' Origin: bresler@netvision.net.il Packet: GAMES.ABC '=========================================================================== DECLARE SUB GameOver () DECLARE SUB slep () DECLARE SUB image () DECLARE SUB words2 (a, B, word$, C) DECLARE SUB Level () DECLARE SUB look () DECLARE SUB PlaceOk () COMMON SHARED x, y, sh, speed, speed2, score, g$, y$ 'SHELL "MODE CON: RATE = 32 DELAY = 1" sol = 5000 GOTO ope game: 10 CLS SCREEN 13 x = 5: y = 5 Level image LINE (0, 178)-(350, 200), 2, BF LINE (4, 4)-(81.5, 181), 2, B ' Draw The Frame LINE (5, 5)-(81, 180), 0, BF RANDOMIZE TIMER startGame: IF y$ = "Y" THEN RUN 10 score = score + 10 r = INT(RND * 3) IF r = 0 THEN GOTO shapeA IF r = 1 THEN GOTO shapeB IF r = 2 THEN GOTO shapeD ' --------------------------------------------- SHAPE 1 x = 5: y = 5 ' LINE (0, 0)-(10, 10), 4, BF ' Shape 1 shapeA: sh = 1 a$ = INKEY$ DEF SEG = &H40: POKE &H17, PEEK(&H17) OR 32 IF POINT(x - 1, y) > 0 THEN selectA = 1 'Left Up shapeA IF POINT(x - 1, y + 10) > 0 THEN selectA = 1 'Left Down shapeA IF POINT(x, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame 'Down Left IF POINT(x + 1, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 2, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 3, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 4, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 5, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 6, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 7, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 8, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 9, y + 11) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 10, y + 11) > 0 AND x > 5 THEN selectC = 1: PlaceOk: GOTO startGame'Down Right IF POINT(x + 11.5, y) > 0 THEN selectB = 1 'Right Up IF POINT(x + 11.5, y + 10) > 0 THEN selectB = 1 'Right Down IF a$ = "4" AND selectA = 0 THEN x = x - 5.49 IF a$ = "6" AND selectB = 0 THEN x = x + 5.49 IF a$ = "2" AND selectC = 0 THEN y = y + 5 IF a$ = CHR$(27) THEN GameOver: RUN 10 selectA = 0 selectB = 0 selectC = 0 ' -------------------------- SUS A IF a$ = "" THEN y = y + 5: FOR spe = 1 TO speed: LINE (x, y)-(x + 10, y + 10), 4, BF: NEXT spe LINE (x, y)-(x + 10, y + 10), 4, BF FOR stay = 1 TO 300: NEXT stay LINE (x, y)-(x + 10, y + 10), 0, BF GOTO shapeA: ' --------------------------------------------- END SHAPE 1 ' ---------------------------------------------- SHAPE 2 x = 5: y = 5 ForshapeB: IF POINT(x + 21, y) > 0 THEN GOTO shapeBC IF POINT(x + 21, y + 5) > 0 THEN GOTO shapeBC shapeB: sh = 2 a$ = INKEY$ DEF SEG = &H40: POKE &H17, PEEK(&H17) OR 32 IF POINT(x, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 2, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 4, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 6, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 8, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 10, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 12, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 14, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 16, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 18, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 21, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x + 10, y + 6) > 0 THEN selectB = 1: PlaceOk: GOTO startGame IF POINT(x - 1, y) > 0 THEN selectA = 1 IF POINT(x - 1, y + 10) > 0 THEN selectA = 1 IF POINT(x + 22, y + 5) > 0 THEN seclctC = 1 IF POINT(x + 22, y) > 0 THEN selectC = 1 IF a$ = "8" AND y < 160 THEN GOTO ForShapeBC IF a$ = "4" AND selectA = 0 THEN x = x - 5.49 IF a$ = "2" AND selectB = 0 THEN y = y + 5 IF a$ = "6" AND selectC = 0 THEN x = x + 5.49 IF a$ = CHR$(27) THEN GameOver: RUN 10 selectA = 0 selectB = 0 selectC = 0 ' --------------------------------------------------- SUS B IF a$ = "" THEN y = y + 5: FOR spe = 1 TO speed: LINE (x, y)-(x + 21, y + 5), 5, BF: NEXT spe LINE (x, y)-(x + 21, y + 5), 5, BF FOR d = 1 TO 300: NEXT LINE (x, y)-(x + 21, y + 5), 0, BF GOTO shapeB: ' ------------------------------------------------ END SHAPE 2 ' ------------------------------------------------ SHAPE 1,2 ForShapeBC: IF POINT(x + 4, y + 22) > 0 THEN GOTO shapeB IF POINT(x, y + 22) > 0 THEN GOTO shapeB shapeBC: sh = 3 a$ = INKEY$ DEF SEG = &H40: POKE &H17, PEEK(&H17) OR 32 IF POINT(x - 1, y) > 0 THEN selectA = 1 IF POINT(x - 1, y + 20) > 0 THEN selectA = 1 IF POINT(x + 5, y) > 0 THEN selectB = 1 IF POINT(x + 6, y) > 0 THEN selectB = 1 IF POINT(x + 6, y + 20) > 0 THEN selectB = 1 IF POINT(x + 5, y + 20) > 0 THEN selectB = 1 IF POINT(x, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 4, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF a$ = "8" AND x < 60 THEN GOTO ForshapeB IF a$ = "4" AND selectA = 0 THEN x = x - 5.49 IF a$ = "6" AND selectB = 0 THEN x = x + 5.49 IF a$ = "2" AND selectC = 0 THEN y = y + 5 IF a$ = CHR$(27) THEN GameOver: RUN 10 selectA = 0 selectB = 0 selectC = 0 ' --------------------------------------- SUS B,C IF a$ = "" THEN y = y + 5: FOR spe = 1 TO speed: LINE (x, y)-(x + 4, y + 20), 5, BF: NEXT spe LINE (x, y)-(x + 4, y + 20), 5, BF FOR d = 1 TO 300: NEXT LINE (x, y)-(x + 4, y + 20), 0, BF GOTO shapeBC: ' ---------------------------------------------------- SHAPE 4 ForShapeD: IF POINT(x + 4, y + 6) > 0 THEN GOTO ShapeDC IF POINT(x + 10, y + 14) > 0 THEN GOTO ShapeDC shapeD: sh = 4 a$ = INKEY$ DEF SEG = &H40: POKE &H17, PEEK(&H17) OR 32 IF POINT(x - 1, y) > 0 THEN selectA = 1 IF POINT(x - 1, y + 4) > 0 THEN selectA = 1 IF POINT(x - 1, y + 8) > 0 THEN selectA = 1 IF POINT(x - 1, y + 12) > 0 THEN selectA = 1 IF POINT(x - 1, y + 16) > 0 THEN selectA = 1 IF POINT(x - 1, y + 20) > 0 THEN selectA = 1 IF POINT(x, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 4, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 10, y + 15) > 0 AND x + 12 < 70 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 8, y + 15) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 11, y + 14) > 0 THEN selectB = 1 IF POINT(x + 11, y + 6) > 0 THEN selectB = 1 IF a$ = "8" THEN GOTO ForShapeDC IF a$ = "4" AND selectA = 0 THEN x = x - 5.49 IF a$ = "6" AND selectB = 0 THEN x = x + 5.49 IF a$ = "2" AND selectC = 0 THEN y = y + 5 IF a$ = CHR$(27) THEN GameOver: RUN 10 selectA = 0 selectB = 0 selectC = 0 ' ----------------------------------------------- SUS D IF a$ = "" THEN y = y + 5: FOR spe = 1 TO speed / 2: LINE (x, y)-(x + 4, y + 20), 7, BF: LINE (x + 4, y + 6)-(x + 10, y + 14), 7, BF: NEXT spe LINE (x, y)-(x + 4, y + 20), 7, BF LINE (x + 4, y + 6)-(x + 10, y + 14), 7, BF FOR d = 1 TO 300: NEXT LINE (x, y)-(x + 4, y + 20), 0, BF LINE (x + 4, y + 6)-(x + 10, y + 14), 0, BF GOTO shapeD: ' ------------------------------------------------------- SHAPE 4,5 ForShapeDC: IF POINT(x, y + 6) > 0 THEN GOTO shapeD IF POINT(x, y + 14) > 0 THEN GOTO shapeD ShapeDC: sh = 5 a$ = INKEY$ DEF SEG = &H40: POKE &H17, PEEK(&H17) OR 32 IF POINT(x + 6, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 8, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 10, y + 21) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x, y + 15) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x + 3, y + 15) > 0 THEN selectC = 1: PlaceOk: GOTO startGame IF POINT(x - 1, y + 6) > 0 THEN selectA = 1 IF POINT(x - 1, y + 14) > 0 THEN selectA = 1 IF POINT(x + 5, y + 20) > 0 THEN selectA = 1 IF POINT(x + 5, y + 18) > 0 THEN selectA = 1 IF POINT(x + 11, y) > 0 THEN selectB = 1 IF POINT(x + 11, y + 2) > 0 THEN selectB = 1 IF POINT(x + 11, y + 4) > 0 THEN selectB = 1 IF POINT(x + 11, y + 8) > 0 THEN selectB = 1 IF POINT(x + 11, y + 12) > 0 THEN selectB = 1 IF POINT(x + 11, y + 14) > 0 THEN selectB = 1 IF POINT(x + 11, y + 17) > 0 THEN selectB = 1 IF POINT(x + 11, y + 20) > 0 THEN selectB = 1 IF a$ = "8" THEN GOTO ForShapeD IF a$ = "4" AND selectA = 0 THEN x = x - 5.49 IF a$ = "6" AND selectB = 0 THEN x = x + 5.49 IF a$ = "2" AND selectC = 0 THEN y = y + 5 IF a$ = CHR$(27) THEN GameOver: RUN 10 selectA = 0 selectB = 0 selectC = 0 ' ------------------------------------------------ SUS D,C IF a$ = "" THEN y = y + 5: FOR spe = 1 TO speed / 2: LINE (x, y + 6)-(x + 6, y + 14), 7, BF: LINE (x + 6, y)-(x + 10, y + 20), 7, BF: NEXT spe LINE (x, y + 6)-(x + 6, y + 14), 7, BF 'SMALL LINE (x + 6, y)-(x + 10, y + 20), 7, BF 'Big FOR d = 1 TO 300: NEXT d LINE (x, y + 6)-(x + 6, y + 14), 0, BF LINE (x + 6, y)-(x + 10, y + 20), 0, BF GOTO ShapeDC ers: BEEP PAINT (1, 1), 3 words2 10, 5, "You must open file in the name SPEED.DAT and write there", 4 words2 10, 20, "N mber for yo r speed-loops", 4 words2 10, 30, "Example in qb:", 4 words2 10, 40, "I Ha E PENT' 133 MHZ so:", 4 words2 20, 80, "OPEN speed.dat for o tp t as #1", 8 words2 30, 90, "PRINT #1, 2000", 8 words2 10, 120, "PRESS ANY KEY TO EXIT..", 9 u$ = INPUT$(1) SYSTEM ' ---------------------------------------------- OPEN PROGRAM ope: SCREEN 13: CLS DIM M1(50): DIM A1(50): DIM V1(50): DIM E1(50): DIM R1(50) DIM I1(50): DIM C1(50): DIM k1(50): DIM BL(50): DIM d(8, 8) DIM AAA%(50), BB%(50), CC%(50), dd%(50) COLOR 4: GET (0, 0)-(7, 7), dd%: LOCATE 1, 1: PRINT CHR$(4) GET (0, 0)-(7, 7), AAA%: LOCATE 1, 1: PRINT "" GET (0, 0)-(7, 7), BB%: LOCATE 1, 1: PRINT "" GET (0, 0)-(7, 7), CC% COLOR 4: LOCATE 2, 2: PRINT "I": GET (6, 6)-(18, 18), M1 COLOR 1: LOCATE 2, 2: PRINT "T": GET (6, 6)-(18, 18), A1 COLOR 2: LOCATE 2, 2: PRINT "A": GET (6, 6)-(15, 16), V1 COLOR 14: LOCATE 2, 2: PRINT "M": GET (6, 6)-(17, 17), E1 COLOR 1: LOCATE 2, 2: PRINT "A": GET (6, 6)-(17, 17), R1 COLOR 4: LOCATE 2, 2: PRINT "R": GET (6, 6)-(17, 17), I1 COLOR 2: LOCATE 2, 2: PRINT ".": GET (6, 6)-(17, 17), C1 COLOR 14: LOCATE 2, 2: PRINT "B": GET (6, 6)-(17, 17), k1 COLOR 8: LOCATE 1, 1: PRINT "" FOR x = 0 TO 6: FOR y = 0 TO 8 C = POINT(x, y): IF C > 0 THEN C = 1 ELSE C = 0 d(x, y) = C NEXT y, x CLS : a = 160: GET (0, 0)-(10, 10), BL PALETTE 8, 0: CL = 2: PALETTE 6, 0: rr = 0 FOR x = 0 TO 8: FOR y = 0 TO 8 IF d(x, y) = 1 THEN LINE (x * 3 + 90, y * 3 + 83)-(x * 3 + 2 + 90, y * 3 + 2 + 83), 8, BF: LINE (x * 3 + 225, y * 3 + 83)-(x * 3 + 2 + 225, y * 3 + 2 + 83), 8, BF NEXT y, x DO FOR n = 0 TO 3.14 STEP .05 k = 3.14 - n: M = SIN(n) * 10: j = SIN(-k) * 10 E = SIN(M) * 10: f = COS(-k) * j PUT ((M * 3.5) + a - 5, (n * 30) + 48), C1, PSET PUT ((j * 3.5) + a + 13, (k * 30) + 47), A1, PSET PUT ((E * 3.5) + a + 10, (n * 30) + 46), V1, PSET PUT ((f * 3.5) + a + 10, (k * 30) + 50), R1, PSET PUT ((M * 3.5) + a + 5, (n * 30) + 44), k1, PSET PUT ((j * 3.5) + a + 2, (k * 30) + 45), M1, PSET PUT ((-E * 3.5) + a, (n * 30) + 43), I1, PSET PUT ((f * 3.5) + a, (k * 30) + 42), E1, PSET slep FOR I = 1 TO 300: NEXT I PUT ((E * 3.5) + a + 10, (n * 30) + 46), BL, PSET PUT ((-E * 3.5) + a, (n * 30) + 43), BL, PSET IF Q = 0 THEN CL = CL + 2 ELSE CL = CL - 2 IF CL = 62 THEN Q = 1 IF CL = 2 THEN Q = 0 PALETTE 8, (256 ^ 2 * CL) + (256 * CL) + CL IF rr = 0 AND n > 1.5 THEN EXIT DO 'SELECT CASE INKEY$ 'CASE IS > "" ' EXIT DO 'END SELECT NEXT n rr = rr + 1 LOOP PUT ((E * 3.5) + a + 10, (n * 30) + 46), V1, PSET PUT ((-E * 3.5) + a, (n * 30) + 43), I1, PSET COLOR 6: Q = 0: CL2 = 10 Z = 63: Z2 = Z: Z3 = Z DO PALETTE 8, (256 ^ 2 * Z) + (256 * Z2) + Z3 IF Z > 0 THEN Z = Z - 1 IF Z = 0 AND Z2 > 0 THEN Z2 = Z2 - 1 IF Z2 = 0 THEN Z3 = Z3 - 1 FOR I = 1 TO 50: NEXT I LOOP UNTIL Z3 = 1 DO FOR y = 0 TO 3.14 STEP .1 x = SIN(y) * 20 Y2 = y - 0!: X2 = SIN(Y2) * 25 Y3 = y - 0!: X3 = SIN(Y2) * 30 Y4 = y - 0!: X4 = SIN(Y2) * 35 PUT ((x * 4) + 160, (y * 50) + 25), AAA%, PSET PUT ((X2 * 4) + 160, (Y2 * 50) + 25), BB%, PSET PUT ((X3 * 4) + 160, (Y3 * 50) + 25), BB%, PSET PUT ((X4 * 4) + 160, (Y4 * 50) + 25), CC%, PSET FOR I = 1 TO sp: NEXT I PUT ((x * 4) + 160, (y * 50) + 25), dd%, PSET PUT ((X2 * 4) + 160, (Y2 * 50) + 25), dd%, PSET PUT ((X3 * 4) + 160, (Y3 * 50) + 25), dd%, PSET PUT ((X4 * 4) + 160, (Y4 * 50) + 25), dd%, PSET SELECT CASE INKEY$ CASE IS > "" EXIT DO END SELECT NEXT y rr = rr + 1 FOR y = 3.14 TO 0 STEP -.1 x = SIN(-y) * 20 Y2 = y + 0!: X2 = SIN(-Y2) * 25 Y3 = y + 0!: X3 = SIN(-Y2) * 30 Y4 = y + 0!: X4 = SIN(-Y2) * 35 PUT ((x * 4) + 160, (y * 50) + 25), AAA%, PSET PUT ((X2 * 4) + 160, (Y2 * 50) + 25), BB%, PSET PUT ((X3 * 4) + 160, (Y3 * 50) + 25), BB%, PSET PUT ((X4 * 4) + 160, (Y4 * 50) + 25), CC%, PSET PUT ((x * 4) + 160, (y * 50) + 25), dd%, PSET PUT ((X2 * 4) + 160, (Y2 * 50) + 25), dd%, PSET PUT ((X3 * 4) + 160, (Y3 * 50) + 25), dd%, PSET PUT ((X4 * 4) + 160, (Y4 * 50) + 25), dd%, PSET SELECT CASE INKEY$ CASE IS > "" EXIT DO END SELECT NEXT y rr = rr + 1 LOOP UNTIL INKEY$ > "" OR rr = 2 Z = 63: Z2 = Z: Z3 = Z SLEEP (1) DO PALETTE 1, (256 ^ 2 * Z) + (256 * Z) + Z PALETTE 2, (256 ^ 2 * Z2) + (256 * Z) + Z PALETTE 4, (256 ^ 2 * Z) + (256 * Z2) + Z3 PALETTE 14, (256 ^ 2 * Z3) + (256 * Z2) + Z IF Z > 0 THEN Z = Z - 1 IF Z = 0 AND Z2 > 0 THEN Z2 = Z2 - 1 IF Z2 = 0 THEN Z3 = Z3 - 1 LOOP UNTIL Z3 = 0 SCREEN 12: SCREEN 13 ko: slep GOTO game SUB GameOver LINE (40, 40)-(190, 110), 3, BF LINE (50, 50)-(180, 100), 15, BF words2 60, 70, "G A M E O E R", 2 words2 80, 80, "PLAY AGAIN Y/N ?", 2 u: u$ = INPUT$(1) IF UCASE$(u$) = "Y" THEN EXIT SUB IF UCASE$(u$) = "N" THEN GOTO ok GOTO u: ok: LINE (40, 40)-(190, 110), 2, BF SLEEP (1) PAINT (1, 1), 4 LINE (40, 40)-(190, 110), 2, BF SLEEP (1) PAINT (1, 1), 4 SLEEP (1) CLS : SCREEN 9: SCREEN 0, 0, 0 SYSTEM END SUB SUB image SCREEN 13 DIM SIGN(420) PALETTE 15, 0 LOCATE 1, 1: PRINT "CONVIENCE STORE" GET (0, 0)-(118, 7), SIGN LOCATE 1, 1: PRINT SPACE$(40) PALETTE 15, 15 LINE (0, 177)-(319, 125), 10, BF slep LINE (0, 0)-(319, 120), 1, BF slep LINE (0, 120)-(319, 125), 2, BF slep CIRCLE (300, 10), 16, 14 slep PAINT (300, 10), 14 DO RANDOMIZE TIMER a = INT(RND * 319) + 1 B = INT((176 - 125 + 1) * RND + 125) LINE (a - 100, B)-(a + a, B + 1), 2, B slep LINE (a - 100, B - 120)-(a + a, B - 121), 9, B C = C + 1 LOOP UNTIL C = 60 LINE (20, 130)-(220, 60), 14, BF slep LINE (10, 60)-(230, 59), 6, BF slep LINE (11, 59)-(30, 35), 6 slep LINE (229, 59)-(210, 35), 6 slep LINE (210, 35)-(30, 35), 6 slep PAINT (100, 45), 6 slep PUT (57, 50), SIGN, OR slep LINE (35, 130)-(72, 70), 0, B slep LINE (73, 130)-(110, 70), 0, B slep PAINT (40, 120), 12, 0: PAINT (100, 80), 12, 0 slep LINE (35, 131)-(15, 177), 8 slep LINE (110, 131)-(130, 177), 8 slep LINE (35, 131)-(110, 131), 8 slep LINE (130, 177)-(15, 177), 8 PAINT (80, 150), 7, 8 slep LINE (130, 177)-(15, 177), 7 LINE (69, 97)-(67, 103), 7, BF LINE (76, 97)-(78, 103), 7, BF slep LINE (130, 72)-(190, 110), 0, B LINE (131, 73)-(189, 109), 11, BF slep LINE (186, 75)-(182, 75), 15 LINE (186, 75)-(186, 85), 15 slep LINE (134, 107)-(134, 105), 15 LINE (134, 107)-(135, 107), 15 slep LINE (140, 109)-(180, 102), 12, BF CIRCLE (145, 106), 3, 15, 1.7, 4.6 LINE (148, 104)-(148, 108), 15: LINE (148, 108)-(151, 108), 15 slep CIRCLE (156, 106), 2, 15 LINE (161, 104)-(164, 104), 15 LINE (160, 104)-(160, 106), 15: LINE (161, 106)-(164, 106), 15 LINE (163, 108)-(160, 108), 15: LINE (164, 108)-(164, 107), 15 slep LINE (167, 104)-(167, 108), 15: LINE (167, 104)-(170, 104), 15 LINE (167, 108)-(170, 108), 15: LINE (167, 106)-(169, 106), 15 LINE (173, 104)-(173, 108), 15: CIRCLE (174, 106), 3, 15, 4.7, 1.5 LINE (290, 133)-(270, 60), 6, BF slep LINE (286, 66)-(285, 126), 8: LINE (281, 77)-(279, 110), 8 LINE (290, 133)-(310, 140), 6: LINE (270, 133)-(250, 140), 6 LINE (310, 140)-(280, 135), 6: LINE (280, 135)-(250, 140), 6 slep PAINT (277, 134), 6 CIRCLE (260, 56), 25, 2: PAINT (260, 50), 2 slep CIRCLE (280, 45), 33, 2: PAINT (290, 45), 2 CIRCLE (303, 53), 22, 2: PAINT (315, 53), 2 'Draw Apples CIRCLE (266, 60), 4, 12: PAINT (266, 60), 12: LINE (266, 57)-(266, 56), 0 slep CIRCLE (277, 43), 4, 12: PAINT (277, 43), 12: LINE (277, 40)-(277, 39), 0 CIRCLE (293, 62), 4, 12: PAINT (293, 62), 12: LINE (293, 59)-(293, 58), 0 END SUB SUB Level CLS ON ERROR GOTO ers 'OPEN "SPEED.DAT" FOR INPUT AS #1 'INPUT #1, speed$ speed$ = "5000" speed = VAL(speed$) speed2 = speed / 2.222222 PAINT (1, 1), 1 words2 40, 40, "SELE T LE EL", 0 words2 43, 43, "SELE T LE EL", 7 words2 40, 60, "1. NORMAL", 0 words2 43, 63, "1. normal", 7 words2 40, 70, "2. HARD", 0 words2 43, 73, "2. HARD", 7 words2 43, 80, "3. ERY HARD", 0 words2 43, 83, "3. ERY HARD", 7 sel: words2 5, 180, "(IF THE SPEED TO HIGH HANGE THE N MBER IN THE FILE SPEED.DAT)", d d = INT(RND * 10) + 1 u$ = INKEY$ IF u$ = "2" THEN g$ = "H": CLS : EXIT SUB IF u$ = "1" THEN g$ = "N": CLS : EXIT SUB IF u$ = "3" THEN g$ = "V": speed = speed / 2.5: g$ = "H": CLS : EXIT SUB GOTO sel END SUB SUB look pl = 5 starto: FOR d = 5 TO 81 IF POINT(d, pl) > 0 THEN pi = 1 IF POINT(d, pl) = 0 THEN pi = 0: EXIT FOR NEXT IF pi = 1 THEN GOTO GetOff pl = pl + .75: IF pl > 181 THEN EXIT SUB GOTO starto GetOff: LINE (5, 5)-(81, pl), 0, BF score = score + pl pl = 5 SOUND 5000, 2 FOR d = 1 TO 5 slep NEXT d GOTO starto END SUB SUB PlaceOk IF y < 10 THEN GameOver: y$ = "Y": EXIT SUB SELECT CASE sh CASE 1 LINE (x, y)-(x + 10, y + 10), 4, BF IF POINT(x - 1, y) = 0 AND POINT(x - 2, y) > 0 THEN LINE (x - 1, y)-(x + 10, y + 10), 4, BF IF POINT(x - 1, y + 10) = 0 AND POINT(x - 2, y) > 0 THEN LINE (x - 1, y)-(x + 10, y + 10), 4, BF IF POINT(x + 11, y) = 0 AND POINT(x + 12, y) > 0 THEN LINE (x, y)-(x + 11, y + 10), 4, BF IF POINT(x + 11, y + 6) = 0 AND POINT(x + 12, y + 6) > 0 THEN LINE (x, y)-(x + 11, y + 10), 4, BF x = 5 y = 5 CASE 2 LINE (x, y)-(x + 21, y + 5), 5, BF x = 5: y = 5 CASE 3 LINE (x, y)-(x + 4, y + 20), 5, BF IF POINT(x + 6, y + 20) > 0 AND POINT(x + 5, y + 20) = 0 THEN LINE (x, y)-(x + 5, y + 20), 5, BF IF POINT(x + 6, y + 10) > 0 AND POINT(x + 5, y + 10) = 0 THEN LINE (x, y)-(x + 5, y + 20), 5, BF IF POINT(x + 5, y + 16) = 0 AND POINT(x + 6, y + 16) > 0 THEN LINE (x, y)-(x + 5, y + 20), 5, BF IF POINT(x + 6, y) > 0 AND POINT(x + 5, y) = 0 THEN LINE (x, y)-(x + 6, y + 20), 5, BF IF POINT(x - 2, y + 20) > 0 AND POINT(x - 1, y + 20) = 0 THEN LINE (x - 1, y)-(x + 4, y + 20), 5, BF IF POINT(x - 2, y + 16) > 0 AND POINT(x - 1, y + 16) = 0 THEN LINE (x - 1, y)-(x + 4, y + 20), 5, BF IF POINT(x - 2, y) > 0 AND POINT(x - 1, y) = 0 THEN LINE (x - 1, y)-(x + 4, y + 20), 5, BF x = 5: y = 5 CASE 4 COLOR 2 LINE (x, y)-(x + 4, y + 20), 7, BF LINE (x + 4, y + 6)-(x + 10, y + 14), 7, BF IF POINT(x + 5, y + 16) = 0 AND POINT(x + 6, y + 16) > 0 THEN LINE (x, y)-(x + 5, y + 20), 7, BF IF POINT(x - 1, y + 20) = 0 AND POINT(x - 2, y + 20) > 0 THEN LINE (x - 1, y)-(x + 4, y + 20), 7, BF IF POINT(x - 1, y + 10) = 0 AND POINT(x - 2, y + 10) > 0 THEN LINE (x - 1, y)-(x + 4, y + 20), 7, BF x = 5: y = 5 CASE 5 LINE (x + 6, y)-(x + 10, y + 20), 7, BF LINE (x, y + 6)-(x + 6, y + 14), 7, BF IF POINT(x + 5, y + 16) = 0 AND POINT(x + 4, y + 16) > 0 THEN LINE (x + 4, y)-(x + 10, y + 20), 7, BF IF POINT(x + 11, y + 18) = 0 AND POINT(x + 12, y + 18) > 0 THEN LINE (x + 6, y)-(x + 11, y + 20), 7, BF x = 5: y = 5 END SELECT look IF speed > speed2 AND g$ = "H" THEN speed = speed * .992 LINE (4, 4)-(81.5, 181), 3, B score$ = STR$(score) LINE (81, 185)-(200, 200), 2, BF words2 81, 190, score$, 0 words2 82, 191, score$, 7 words2 222, 190, "QB - TETRIS", 0 words2 223, 191, "QB - TETRIS", 7 END SUB SUB slep t = TIMER st: IF TIMER - t > 0 THEN EXIT SUB FOR d = 1 TO 500: NEXT d GOTO st END SUB SUB words2 (a, B, word$, C) word$ = UCASE$(word$) FOR t = 1 TO LEN(word$) a$ = MID$(word$, t, 1) SELECT CASE a$ CASE IS = "A" let$ = "u3erfd3u2l3" CASE IS = "B" let$ = "u4r2fgl2r2fgl2" CASE IS = "C" let$ = "bm" + STR$(x + 3) + "," + STR$(y) + "l2hu2er2" CASE IS = "D" let$ = "u4r2fd2gl2" CASE IS = "E" let$ = "u4r3l3d2r2l2d2r3" CASE IS = "F" let$ = "u4r3l3d2r2" CASE IS = "G" let$ = "u4r3l3d4r3u2l" CASE IS = "H" let$ = "u4d2r3u2d4" CASE IS = "I" let$ = "r2lu4rl2" CASE IS = "J" let$ = "udr2u4rl3" CASE IS = "K" let$ = "u4d2re2g2f2" CASE IS = "L" let$ = "r3l3u4" CASE IS = "M" let$ = "u4f2e2d4" CASE IS = "N" let$ = "u4f2eud4" CASE IS = "O" let$ = "u4r3d4l3" CASE IS = "P" let$ = "u4r2fgl2" CASE IS = "Q" let$ = "u4r3d4l3r3h" CASE IS = "R" let$ = "u4r2fgl2rf2" CASE IS = "S" let$ = "r2ehlher2" CASE IS = "T" let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "u4lr2" CASE IS = "U" let$ = "bm" + STR$(a) + "," + STR$(y - 4) + "d3freu3" CASE IS = "V" let$ = "bm" + STR$(a) + "," + STR$(y - 4) + "dfdfeueu" CASE IS = "W" let$ = "bm" + STR$(a) + "," + STR$(y - 1) + "u3d3feu2d2feu3" CASE IS = "X" let$ = "e4g2h2f4" CASE IS = "Y" let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "u2hudfeu" CASE IS = "Z" let$ = "r3l3e3ul3" CASE IS = "1" let$ = "r2lu4g" CASE IS = "2" let$ = "r3l3e3ul3d" CASE IS = "3" let$ = "r2ehlrehl2" CASE IS = "4" let$ = "bm" + STR$(a + 3) + "," + STR$(B) + "u4d2l3u2" CASE IS = "5" let$ = "r2ehl2u2r3" CASE IS = "6" let$ = "r3u2l3du3r3" CASE IS = "7" let$ = "bm" + STR$(a + 2) + "," + STR$(B) + "u2eul3d" CASE IS = "8" let$ = "r3u2l3d2u4r3d2" CASE IS = "9" let$ = "r3u4l3d2r3" CASE IS = "0" let$ = "r3u4l3d4e3" CASE IS = "/" let$ = "e4" CASE IS = ":" let2$ = "bm" + STR$(a + 1) + "," + STR$(B - 3) + "u" let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "u" + let2$ CASE IS = "." let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "r" CASE IS = "(" let$ = "bm" + STR$(a + 2) + "," + STR$(B) + "hu2e" CASE IS = ")" let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "eu2h" CASE IS = "," let$ = "bm" + STR$(a + 2) + "," + STR$(B - 1) + "dg" CASE IS = "?" let$ = "bm" + STR$(a + 1) + "," + STR$(B) + "u2ru2l2d" CASE IS = "'" let$ = "bm" + STR$(a + 2) + "," + STR$(B - 4) + "dg" CASE IS = "!" let$ = "bm" + STR$(a + 1) + "," + STR$(B + 1) + "uc18uc" + STR$(C) + "u3rd2" CASE IS = "-" let$ = "bm" + STR$(a) + "," + STR$(B - 2) + "r3" CASE IS = " " let$ = "" END SELECT IF let$ <> "" THEN DRAW "bm" + STR$(a) + "," + STR$(B) + "c" + STR$(C) + let$ END IF a = a + 5 NEXT END SUB