'=========================================================================== ' Subject: GAME KUBIK UPDATE Date: 01-05-98 (03:03) ' Author: Andrey Berezansky Code: QB, QBasic, PDS ' Origin: nikolai@nsi.co.il Packet: GAMES.ABC '=========================================================================== ' Well not much a improvement but it looks nicer and has an ending scene ' elso it is much harder (level 3 KICKS ASS) . ' In ending scene i used program "FIREPRN.BAS" programed by Andrew L. Ayers ' that i found in one of the ABC packets . ' Controls - arrow keys. ' The game contains 7 cool levels and 2 "secret" codes . ' If intro is to slow in your computer just put ' before "CALL start" command. ' Programmer BEREZANSKY ANDREY email - nikol@cs.bgu.ac.il ' If you have ANYTHING to say to me (like "the game is suck") - email me ! ' If you dont like speed of your game change the delay number below ' as smaler it is as faster you game speed will be ! (defalt is for 486/66mhz) ' \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\\\\\|//////\/\/\/\/\/\/\/\/\/\/\/\/ DEFINT A-Z '| DECLARE SUB delay () '| DECLARE SUB start () '| DECLARE SUB win () '| DECLARE SUB winwin () '| DECLARE SUB level () '| DECLARE SUB lose () '| DECLARE SUB up () '| DECLARE SUB right () '| DECLARE SUB left () '| DECLARE SUB down () '| DECLARE SUB FirePrint (h%, v%, a$, tilt%) '| '| RANDOMIZE TIMER '| SCREEN 9 '| CALL start '| '| ' here you can change the speed ->\\\\\\/////<- DIM SHARED loss(640, 13): life = 3: dellay = 3300 1 x = 20: y = 160: dlina = 7: shirina = 10: press = 6 CLS lev = lev + 1 LOCATE 25, 1: PRINT "LEVEL_"; lev LOCATE 25, 15: PRINT "LIVES_"; life CALL level CALL right 10 IF press = 2 THEN CALL down IF press = 4 THEN CALL left IF press = 8 THEN CALL up IF press = 6 THEN CALL right IF press = 0 THEN 100 IF endd = 1 THEN 110 IF press = 9 THEN 1 GOTO 10 100 IF life <> 0 THEN lev = lev - 1 GOTO 1 END IF 110 LOCATE 11, 21: PRINT " DO YOU WANT TO PLAY ANOTHER GAME ? (y/n) " aa = 0: andr = 0 DO WHILE aa = 0 SELECT CASE INKEY$ CASE "y" life = 3: lev = 0: aa = 1: endd = 0: GOTO 1 CASE "n" aa = 1 CASE CHR$(36) DO WHILE andr = 0 SELECT CASE INKEY$ CASE "a" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "n" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "d" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "r" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "e" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "y" life = 100: lev = lev - 1: aa = 1 endd = 0: andr = 1: GOTO 1 CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP andr = 0 CASE "+" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "l" DO WHILE andr = 0 SELECT CASE INKEY$ CASE "v" IF lev < 8 THEN life = 3: aa = 1: endd = 0: GOTO 1 END IF aa = 1: endd = 0: andr = 1 CASE "" CASE ELSE andr = 1 END SELECT LOOP CASE "" CASE ELSE andr = 1 END SELECT LOOP andr = 0 END SELECT LOOP SUB delay SHARED press, dellay IF press = 4 OR press = 6 THEN FOR mm = 1 TO dellay: NEXT END IF IF press = 2 OR press = 8 THEN FOR mm = 1 TO dellay + dellay / 4: NEXT END IF END SUB SUB down SHARED dlina, x, y, press DO WHILE exitt = 0 y = y + 1 '********** border ************************************ IF y > 329 THEN CALL lose: exitt = 1: press = 0: GOTO 20 END IF '****************************************************** '****************************************************** FOR m = 0 TO 9 FOR mm = 1 TO 11 STEP 2 IF y >= loss(x + m, mm) AND y <= loss(x + m, mm + 1) THEN CALL lose: exitt = 1: press = 0: GOTO 20 END IF NEXT mm NEXT m '****************************************************** LINE (x, y)-(x + 9, y), 11: LINE (x, y - dlina)-(x + 9, y - dlina), 0 CALL delay SELECT CASE INKEY$ CASE CHR$(0) + CHR$(77) x = x + 9: y = y - 6: press = 6: exitt = 1 CASE CHR$(0) + CHR$(75) y = y - 6: press = 4: exitt = 1 END SELECT 20 LOOP END SUB SUB FirePrint (h%, v%, a$, tilt%) ' ' Print the string in bright "red" ' COLOR 63: LOCATE v%, h%: PRINT a$ ' ' Set up start and end locations for the burn ' sx% = (h% * 8) - 8: ex% = ((h% + LEN(a$)) * 8) - 8 sy% = (v% * 8) - 16: ey% = (v% * 8) - 8 ' FOR y% = sy% TO ey% FOR x% = sx% TO ex% ' ' Take the current color, subtract a random amount for ' red flame "fade", and plot the new point ' col% = POINT(x%, y%) - RND * 25: IF col% < 0 THEN col% = 0 ' PSET (x% + tilt%, y% - 1), col% ' NEXT x% NEXT y% ' END SUB SUB left SHARED shirina, x, y, press DO WHILE exitt = 0 x = x - 1 IF x < 2 THEN CALL lose: exitt = 1: press = 0: GOTO 30 END IF '****************************************************** FOR mm = 1 TO 11 STEP 2 FOR yy = 0 TO 6 IF y + yy >= loss(x, mm) AND y + yy <= loss(x, mm + 1) THEN CALL lose: exitt = 1: press = 0: GOTO 30 END IF NEXT yy NEXT mm '****************************************************** LINE (x, y)-(x, y + 6), 11: LINE (x + shirina, y)-(x + shirina, y + 6), 0 CALL delay SELECT CASE INKEY$ CASE CHR$(0) + CHR$(72) press = 8: exitt = 1 CASE CHR$(0) + CHR$(80) y = y + 6: press = 2: exitt = 1 END SELECT 30 LOOP END SUB SUB level SHARED lev IF lev = 1 THEN 1001 IF lev = 2 THEN 1002 IF lev = 3 THEN 1003 IF lev = 4 THEN 1004 IF lev = 5 THEN 1005 IF lev = 6 THEN 1006 IF lev = 7 THEN 1007 IF lev = 8 THEN 1008 1001 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- loss(200, 1) = 1: loss(200, 2) = 60: loss(200, 3) = 75: loss(200, 4) = 255 loss(200, 5) = 270: loss(200, 6) = 330 FOR m = 201 TO 300 loss(m, 1) = 60: loss(m, 2) = 60: loss(m, 3) = 75: loss(m, 4) = 75 loss(m, 5) = 255: loss(m, 6) = 255: loss(m, 7) = 270: loss(m, 8) = 270 NEXT loss(301, 1) = 20: loss(301, 2) = 60: loss(301, 3) = 75: loss(301, 4) = 75 loss(301, 5) = 255: loss(301, 6) = 255: loss(301, 7) = 270: loss(301, 8) = 310 FOR m = 302 TO 314 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 3) = 75: loss(m, 4) = 75 loss(m, 5) = 255: loss(m, 6) = 255: loss(m, 7) = 310: loss(m, 8) = 310 NEXT loss(315, 1) = 20: loss(315, 2) = 20: loss(315, 3) = 35: loss(315, 4) = 75 loss(315, 5) = 255: loss(315, 6) = 295: loss(315, 7) = 310: loss(315, 8) = 310 FOR m = 316 TO 500 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 3) = 35: loss(m, 4) = 35 loss(m, 5) = 295: loss(m, 6) = 295: loss(m, 7) = 310: loss(m, 8) = 310 NEXT loss(501, 1) = 20: loss(501, 2) = 20: loss(501, 3) = 35: loss(501, 4) = 295 loss(501, 5) = 310: loss(501, 6) = 310 FOR m = 502 TO 514 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 3) = 310: loss(m, 4) = 310 NEXT loss(515, 1) = 20: loss(515, 2) = 158: loss(515, 3) = 172: loss(515, 4) = 310 FOR m = 516 TO 629 loss(m, 1) = 158: loss(m, 2) = 158: loss(m, 3) = 172: loss(m, 4) = 172 NEXT loss(630, 1) = 1: loss(630, 2) = 158: loss(630, 3) = 172: loss(630, 4) = 330 '--------- WHAT A MESS !!! -------------------------------- LINE (200, 1)-(200, 60), 4: LINE (200, 75)-(200, 255), 4 LINE (200, 270)-(200, 330), 4: LINE (200, 60)-(300, 60), 4 LINE (200, 75)-(315, 75), 4: LINE (301, 20)-(301, 60), 4 LINE (315, 35)-(315, 75), 4: LINE (315, 255)-(315, 295), 4 LINE (301, 270)-(301, 310), 4: LINE (200, 255)-(315, 255), 4 LINE (200, 270)-(300, 270), 4: LINE (300, 20)-(515, 20), 4 LINE (300, 310)-(515, 310), 4: LINE (315, 35)-(500, 35), 4 LINE (315, 295)-(500, 295), 4: LINE (501, 35)-(501, 295), 4 LINE (515, 20)-(515, 158), 4: LINE (515, 172)-(515, 310), 4 LINE (515, 158)-(630, 158), 4: LINE (515, 172)-(630, 172), 4 LINE (630, 159)-(630, 171), 14 PAINT (300, 200), 9, 4: PAINT (300, 2), 1, 4: PAINT (300, 329), 1, 4 '---------------------------------------------------------- GOTO 10000 1002 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- loss(200, 1) = 13: loss(200, 2) = 13: loss(200, 3) = 160: loss(200, 4) = 330 loss(215, 1) = 13: loss(215, 2) = 13: loss(215, 3) = 160: loss(215, 4) = 160 loss(215, 5) = 173: loss(215, 6) = 317 loss(615, 1) = 13: loss(615, 2) = 160: loss(615, 3) = 173: loss(615, 4) = 173 loss(615, 5) = 200: loss(615, 6) = 317 loss(630, 1) = 1: loss(630, 2) = 200: loss(630, 3) = 213: loss(630, 4) = 330 FOR m = 201 TO 214 loss(m, 1) = 13: loss(m, 2) = 13: loss(m, 3) = 160: loss(m, 4) = 160 NEXT FOR m = 216 TO 614 loss(m, 1) = 13: loss(m, 2) = 13: loss(m, 3) = 160: loss(m, 4) = 160 loss(m, 5) = 173: loss(m, 6) = 173: loss(m, 7) = 317: loss(m, 8) = 317 NEXT FOR m = 616 TO 629 loss(m, 1) = 173: loss(m, 2) = 173: loss(m, 3) = 200: loss(m, 4) = 200 NEXT '------- That's better ------------------------------------ LINE (200, 13)-(615, 13), 4: LINE (200, 160)-(615, 160), 4 LINE (215, 173)-(630, 173), 4: LINE (215, 317)-(615, 317), 4 LINE (615, 200)-(630, 200), 4: LINE (200, 160)-(200, 330), 4 LINE (215, 173)-(215, 317), 4: LINE (615, 13)-(615, 160), 4 LINE (615, 200)-(615, 317), 4: LINE (630, 201)-(630, 212), 14 LINE (200, 7)-(210, 7), 7: LINE (210, 7)-(205, 4), 7: LINE (210, 7)-(205, 10), 7 '---------------------------------------------------------- GOTO 10000 1003 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- FOR m = 320 TO 599 loss(m, 1) = 280 - mm: loss(m, 2) = 280 - mm mm = mm + 1 NEXT mm = 0 FOR m = 320 TO 600 loss(m, 3) = 330 - mm: loss(m, 4) = 330 - mm mm = mm + 1 NEXT loss(320, 1) = 1: loss(320, 2) = 280: loss(630, 1) = 1: loss(630, 2) = 318 loss(600, 3) = 50: loss(600, 4) = 330 '-------------- Exelent ----------------------------------- LINE (320, 1)-(320, 280), 4: LINE (320, 330)-(600, 50), 4 LINE (600, 50)-(600, 330), 4: LINE (320, 280)-(599, 1), 4 PAINT (340, 10), 5, 4: PAINT (340, 328), 5, 4 LINE (630, 319)-(630, 329), 14 '---------------------------------------------------------- GOTO 10000 1004 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- loss(20, 1) = 20: loss(20, 2) = 159: loss(20, 3) = 167: loss(20, 4) = 310 loss(300, 1) = 20: loss(300, 2) = 20: loss(300, 3) = 100: loss(300, 4) = 159 loss(300, 5) = 167: loss(300, 6) = 230: loss(300, 7) = 310: loss(300, 8) = 310 loss(315, 1) = 20: loss(315, 2) = 20: loss(315, 3) = 100: loss(315, 4) = 100 loss(315, 5) = 111: loss(315, 6) = 219: loss(315, 7) = 230: loss(315, 8) = 230 loss(315, 9) = 310: loss(315, 10) = 310 loss(400, 1) = 20: loss(400, 2) = 20: loss(400, 3) = 100: loss(400, 4) = 100 loss(400, 5) = 111: loss(400, 6) = 219: loss(400, 7) = 230: loss(400, 8) = 230 loss(400, 9) = 310: loss(400, 10) = 310 loss(415, 1) = 20: loss(415, 2) = 20: loss(415, 3) = 100: loss(415, 4) = 230 loss(415, 5) = 310: loss(415, 6) = 310 loss(615, 1) = 20: loss(615, 2) = 310 loss(630, 1) = 1: loss(630, 2) = 20: loss(630, 3) = 310: loss(630, 4) = 330 FOR m = 21 TO 299 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 7) = 310: loss(m, 8) = 310 loss(m, 3) = 159: loss(m, 4) = 159: loss(m, 5) = 167: loss(m, 6) = 167 NEXT FOR m = 301 TO 314 loss(m, 3) = 100: loss(m, 4) = 100: loss(m, 5) = 230: loss(m, 6) = 230 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 7) = 310: loss(m, 8) = 310 NEXT FOR m = 316 TO 399 loss(m, 5) = 111: loss(m, 6) = 111: loss(m, 7) = 219: loss(m, 8) = 219 loss(m, 3) = 100: loss(m, 4) = 100: loss(m, 9) = 230: loss(m, 10) = 230 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 11) = 310: loss(m, 12) = 310 NEXT FOR m = 401 TO 414 loss(m, 3) = 100: loss(m, 4) = 100: loss(m, 5) = 230: loss(m, 6) = 230 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 7) = 310: loss(m, 8) = 310 NEXT FOR m = 416 TO 614 loss(m, 1) = 20: loss(m, 2) = 20: loss(m, 3) = 310: loss(m, 4) = 310 NEXT '-------------- That's looks easy ------------------------------ LINE (20, 20)-(615, 310), 4, B: LINE (300, 100)-(415, 230), 4, B LINE (315, 111)-(400, 219), 4, B: LINE (20, 160)-(20, 166), 0 LINE (300, 160)-(300, 166), 0: LINE (630, 21)-(630, 309), 14 LINE (20, 159)-(300, 159), 4: LINE (20, 167)-(300, 167), 4 PAINT (21, 21), 1, 4: PAINT (350, 150), 9, 4 CIRCLE (357, 165), 27, 12: PAINT (357, 165), 12, 12 LINE (335, 160)-(379, 170), 15, BF '--------------------------------------------------------------- GOTO 10000 1005 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- FOR m = 320 TO 599 loss(m, 1) = 280 - mm: loss(m, 2) = 280 - mm mm = mm + 1 NEXT mm = 0 FOR m = 320 TO 600 loss(m, 3) = 330 - mm: loss(m, 4) = 330 - mm mm = mm + 1 NEXT loss(630, 1) = 1: loss(630, 2) = 318: loss(600, 3) = 50: loss(600, 4) = 330 loss(40, 1) = 50: loss(40, 2) = 330 mm = 0 FOR m = 41 TO 319 mm = mm + 1 loss(m, 1) = mm: loss(m, 2) = mm NEXT mm = 0 FOR m = 41 TO 319 mm = mm + 1 loss(m, 3) = mm + 50: loss(m, 4) = mm + 50 NEXT '------------- I seen this somewhere -------------------- LINE (40, 50)-(40, 330), 4: LINE (320, 330)-(600, 50), 4 LINE (600, 50)-(600, 330), 4: LINE (320, 280)-(599, 1), 4 LINE (41, 1)-(320, 280), 4: LINE (40, 50)-(320, 330), 4 LINE (630, 319)-(630, 329), 14 PAINT (340, 10), 5, 4: PAINT (340, 328), 1, 4: PAINT (50, 328), 1, 4 COLOR 5: LOCATE 2, 20: PRINT " Y O U W I L L N E V E R W I N ! ! ! ": COLOR 15 '-------------------------------------------------------- GOTO 10000 1006 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- loss(240, 1) = 150: loss(240, 2) = 150: loss(240, 3) = 165: loss(240, 4) = 195 loss(255, 1) = 150: loss(255, 2) = 180: loss(255, 3) = 195: loss(255, 4) = 195 loss(630, 1) = 1: loss(630, 2) = 180: loss(630, 3) = 195: loss(630, 4) = 330 loss(100, 1) = 1: loss(100, 2) = 30: loss(530, 1) = 1: loss(530, 2) = 30 FOR i = 200 TO 239 loss(i, 1) = 150: loss(i, 2) = 150: loss(i, 3) = 165: loss(i, 4) = 165 NEXT FOR i = 241 TO 254 loss(i, 1) = 150: loss(i, 2) = 150: loss(i, 3) = 195: loss(i, 4) = 195 NEXT FOR i = 256 TO 295 loss(i, 1) = 180: loss(i, 2) = 180: loss(i, 3) = 195: loss(i, 4) = 195 NEXT FOR i = 101 TO 529 loss(i, 5) = 30: loss(i, 6) = 30 NEXT '------------- Peace of cake --------------------------- LINE (200, 150)-(255, 150), 4: LINE (200, 165)-(240, 165), 4 LINE (240, 195)-(295, 195), 4: LINE (255, 180)-(295, 180), 4 LINE (240, 165)-(240, 195), 4: LINE (255, 150)-(255, 180), 4 LINE (100, 1)-(530, 30), 4, B COLOR 14: LOCATE 2, 15: PRINT "WHATS GOING ON ? IS IT A BUG ? WHERE IS THE EXIT ?!": COLOR 15 '-------------------------------------------------------- GOTO 10000 1007 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- loss(220, 1) = 1: loss(220, 2) = 160: loss(220, 3) = 170: loss(220, 4) = 330 loss(410, 1) = 1: loss(410, 2) = 160: loss(410, 3) = 170: loss(410, 4) = 330 loss(630, 1) = 15: loss(630, 2) = 330 FOR i = 221 TO 409 loss(i, 1) = 160: loss(i, 2) = 160: loss(i, 3) = 170: loss(i, 4) = 170 NEXT '--------------- No comments ---------------------------- LINE (220, 1)-(410, 160), 4, B: LINE (220, 170)-(410, 330), 4, B PAINT (240, 2), 9, 4: PAINT (240, 329), 5, 4 COLOR 5: LOCATE 6, 30: PRINT " CAN BE ONLY ONE !!! " COLOR 9: LOCATE 17, 30: PRINT " DO YOU FEEL LUCKY ? " LINE (630, 2)-(630, 14), 14: LINE (630, 102)-(630, 114), 14 LINE (630, 202)-(630, 214), 14: LINE (630, 317)-(630, 329), 14 LINE (609, 8)-(619, 8), 13: LINE (619, 8)-(614, 5), 13: LINE (619, 8)-(614, 11), 13 LINE (609, 108)-(619, 108), 13: LINE (619, 108)-(614, 105), 13: LINE (619, 108)-(614, 111), 13 LINE (609, 208)-(619, 208), 13: LINE (619, 208)-(614, 205), 13: LINE (619, 208)-(614, 211), 13 LINE (609, 323)-(619, 323), 13: LINE (619, 323)-(614, 320), 13: LINE (619, 323)-(614, 326), 13 COLOR 15 '-------------------------------------------------------- GOTO 10000 1008 '-------- preparing -------- LINE (1, 1)-(630, 330), 4, B FOR ii = 1 TO 630 FOR m = 1 TO 13 loss(ii, m) = 0 NEXT m NEXT '--------------------------- LINE (630, 2)-(630, 329), 14 LOCATE 3, 12: PRINT "THIS IS A SHAREWARE VERSION AND ONLY 7 LEVELS INCLUDED !" LOCATE 5, 20: PRINT "feel free to email (nikol@cs.bgu.ac.il) me " 10000 END SUB ' SUB lose SHARED life life = life - 1 LOCATE 11, 22: PRINT " YOU LOSE !!! YOU HAVE "; life; "LIVES LEFT ! " DO WHILE INKEY$ = "": LOOP END SUB SUB right SHARED shirina, x, y, press DO WHILE exitt = 0 x = x + 1 IF x > 639 THEN CALL win: exitt = 1: press = 9: GOTO 40 END IF '****************************************************** FOR mm = 1 TO 11 STEP 2 FOR yy = 0 TO 6 IF y + yy >= loss(x, mm) AND y + yy <= loss(x, mm + 1) THEN CALL lose: exitt = 1: press = 0: GOTO 40 END IF NEXT yy NEXT mm '****************************************************** LINE (x, y)-(x, y + 6), 11: LINE (x - shirina, y)-(x - shirina, y + 6), 0 CALL delay SELECT CASE INKEY$ CASE CHR$(0) + CHR$(72) x = x - 9: press = 8: exitt = 1 CASE CHR$(0) + CHR$(80) press = 2: x = x - 9: y = y + 6: exitt = 1 END SELECT 40 LOOP END SUB SUB start COLOR 8, 8 COLOR 3 FOR i = 1 TO 630 LOCATE 9, 12: PRINT " KUBIK II ! " IF i < 193 THEN LINE (i, 111)-(i, 124), 11 LOCATE 10, 25: PRINT " writen in qbasic " IF i < 337 THEN LINE (i, 125)-(i, 139), 12 LOCATE 11, 43: PRINT " BY BEREZANSKY ANDREY " IF i < 513 THEN LINE (i, 139)-(i, 154), 13 LOCATE 15, 25: PRINT " email nikol@cs.bgu.ac.il" LINE (i, 195)-(i, 214), 15: LINE (i, 69)-(i, 70), 15 NEXT FOR m = 1 TO 5 FOR iiii = 1 TO 30000: NEXT iiii NEXT FOR i = 71 TO 193 LOCATE 9, 12: PRINT " KUBIK II ! " LOCATE 10, 25: PRINT " writen in qbasic " LOCATE 11, 43: PRINT " BY BEREZANSKY ANDREY " LOCATE 15, 25: PRINT " email nikol@cs.bgu.ac.il" LINE (1, i)-(630, i + 1), 15, BF: LINE (1, i - 1)-(630, i - 2), 0, BF NEXT DO WHILE INKEY$ = "": LOOP COLOR 15, 0 END SUB SUB up SHARED dlina, x, y, press DO WHILE exitt = 0 y = y - 1 IF y < 2 THEN CALL lose: exitt = 1: press = 0: GOTO 60 END IF '****************************************************** FOR m = 0 TO 9 FOR mm = 1 TO 11 STEP 2 IF y >= loss(x + m, mm) AND y <= loss(x + m, mm + 1) THEN CALL lose: exitt = 1: press = 0: GOTO 60 END IF NEXT mm NEXT m '****************************************************** LINE (x, y)-(x + 9, y), 11: LINE (x, y + dlina)-(x + 9, y + dlina), 0 CALL delay SELECT CASE INKEY$ CASE CHR$(0) + CHR$(77) x = x + 9: press = 6: exitt = 1 CASE CHR$(0) + CHR$(75) press = 4: exitt = 1 END SELECT 60 LOOP END SUB SUB win SHARED lev, life LOCATE 10, 15: PRINT " YOU COMPLITED LEVEL "; lev; " GOOD LUCK ON THE NEXT ONE ! " IF lev = 3 THEN life = life + 1 IF lev = 5 THEN life = life + 1 IF lev = 8 THEN CALL winwin DO WHILE INKEY$ = "": LOOP END SUB SUB winwin SHARED endd CLS FOR i = 1 TO 300 LINE (i, 150)-(i + 10, 157), 11, BF LINE (605 - i, 150)-(595 - i, 157), 4, BF FOR ii = 1 TO 3400: NEXT ii LINE (i, 150)-(i + 10, 157), 0, BF LINE (605 - i, 150)-(595 - i, 157), 0, BF NEXT FOR i = 1 TO 200 col = col + 1: IF col = 16 THEN col = 1 CIRCLE (305, 153), i, col FOR ii = 1 TO 4000: NEXT ii NEXT SLEEP 1& SCREEN 13 FOR t = 0 TO 63: PALETTE t, t: NEXT t DO CALL FirePrint(16, 12, "YOU WIN !!!", 0) LOOP UNTIL INKEY$ <> "" SCREEN 9: COLOR 15: CLS : endd = 1 END SUB