DECLARE SUB KOODIT () DECLARE SUB PommiVeke () DECLARE SUB EXPLOSION () DECLARE SUB AlkuSetup () DECLARE SUB RuutuVeks () DECLARE SUB CREDITS () DECLARE SUB VALIKKO () DECLARE SUB HIGHSCORES () DECLARE SUB GAMEOVER () DECLARE SUB HaudanKaivaja () DECLARE SUB Tuleeksbuliksestalettu () DECLARE SUB SPLUT () DECLARE SUB PahaPulisPois () DECLARE SUB GetOldBulis () DECLARE SUB OsaaPuliksetkinLiikkua () DECLARE SUB BuliksetPaikalleen () DECLARE SUB Pulis () DECLARE SUB HooPixel () DECLARE SUB Napit () DECLARE SUB GetOldPaikkaBack () DECLARE SUB OldAutoVeks () DECLARE SUB LaskeKaaranPaikka () DECLARE SUB SetUp () DECLARE SUB Kaara () DECLARE SUB SetSprites () DECLARE SUB Showmittarit () DECLARE SUB peliRuutu () 'MAD CAR COMMON SHARED UKOT, PALLOT, KERTAA, VARAX, VARAY COMMON SHARED KULMAJUMP, AUTOKULMA, kokko, MILLOSSEPOMMITULEE COMMON SHARED x1, x2, x3, x4, x5, x6, x7, x8, suuntax COMMON SHARED y1, y2, y3, y4, y5, y6, y7, y8, suuntay COMMON SHARED LIIKKUUKSTAAHOSKA, CarSpeed, GAGA, WALKRAJA, NUMERO COMMON SHARED LIISKATUT, BADPULIS, PISTEET, KERTA, NAPITT$, KOODI CONST CODE1$ = "BULIKKATHEPALIKKA" 'POLLARIT VEKE 'AlkuSetup SCREEN 13 CLEAR CONST PI = 22 / 7 TYPE DATAA X AS INTEGER Y AS INTEGER KULMA AS INTEGER END TYPE TYPE LIHISDATA X AS INTEGER Y AS INTEGER SUUNTA AS INTEGER WALK AS INTEGER END TYPE CONST maxiukot = 6 DIM SHARED CARTAUSTA(1000) DIM SHARED PALLO(PALLOT) AS DATAA DIM SHARED PISTETEKSTI(1000) DIM SHARED AUTODATA AS DATAA DIM SHARED CARBUFFER(1000) DIM SHARED BULISUP(1000), BULISLEFT(1000), BULISDOWN(1000), BULISRIGHT(1000) DIM SHARED BBULISUP(1000), BBULISLEFT(1000), BBULISDOWN(1000), BBULISRIGHT(1000) DIM SHARED Bulis(maxiukot) AS LIHISDATA DIM SHARED BULIBACKUP(100) DIM SHARED BLOOD(100) DIM SHARED EVIL(200) AS LIHISDATA DIM SHARED HUIPOMMI(200) DIM SHARED POMMI(2) DIM SHARED VARAPOMMI(200) CONST vasen = 75 CONST oikea = 77 CONST kaasua = 72 CONST Maxspeed = 500 CONST soundon = 0 UKOT = maxiukot PALLOT = 2 SetSprites SetUp kokko = 1 CarSpeed = 10 OrgCarSpeed = 10 VALIKKO ALKU: BuliksetPaikalleen peliRuutu KOODIT UPDATE: HaudanKaivaja Showmittarit LaskeKaaranPaikka GetOldPaikkaBack Kaara Pulis PELI: WAIT &H3DA, 8 'Nappirutiinit Napit OsaaPuliksetkinLiikkua 'T„ss„ m”ll”tt„„ kaasurutiini IF OrgCarSpeed = CarSpeed THEN GOTO NOWAYYOUFOOL GAGA = GAGA + 1 IF GAGA >= CarSpeed THEN GAGA = 0 OldAutoVeks AX = AUTODATA.X AY = AUTODATA.Y AUTODATA.X = suuntax AUTODATA.Y = suuntay 'TSEKKI LaskeKaaranPaikka IF x1 <= 12 THEN AUTODATA.X = AX IF y1 <= 9 THEN AUTODATA.Y = AY IF x2 <= 12 THEN AUTODATA.X = AX IF y2 <= 9 THEN AUTODATA.Y = AY IF x1 >= 300 THEN AUTODATA.X = AX IF y1 >= 178 THEN AUTODATA.Y = AY IF x2 >= 300 THEN AUTODATA.X = AX IF y2 >= 178 THEN AUTODATA.Y = AY Tuleeksbuliksestalettu GOTO UPDATE END IF NOWAYYOUFOOL: IF LIIKKUUKSTAAHOSKA = 1 THEN LIIKKUUKSTAAHOSKA = 0: GOTO UPDATE 'NO JO ON KUMMA!!! 'JOS EI RUUDULLA TAPAHDU MITˇˇN PELAAJAN LIIKETTˇ,NIIN AINASKIN 'BULIKSET OSAA LYLLERTˇˇ KADUILLA!!!!!! OldAutoVeks GOTO UPDATE GOTO PELI SUB AlkuSetup OPEN "C:\MADPATH.TXT" FOR INPUT AS #1 INPUT #1, GAMEPATH$ CLOSE CHDIR GAMEPATH$ OPEN "SCORES.DAT" FOR INPUT AS #1 IF EOF(1) THEN SCREEN 0 CLS COLOR 4 PRINT "EN L™YDˇ -SCORES.DAT- TIEDOSTOA." CLOSE KILL "SCORES.DAT" SYSTEM END IF CLOSE END SUB SUB BuliksetPaikalleen 'IF x1 <= 12 THEN AUTODATA.X = AX 'IF y1 <= 9 THEN AUTODATA.Y = AY 'IF x2 <= 12 THEN AUTODATA.X = AX 'IF y2 <= 9 THEN AUTODATA.Y = AY 'IF x1 >= 300 THEN AUTODATA.X = AX 'IF y1 >= 178 THEN AUTODATA.Y = AY 'IF x2 >= 300 THEN AUTODATA.X = AX 'IF y2 >= 178 THEN AUTODATA.Y = AY RANDOMIZE TIMER FOR A = 1 TO UKOT POO: X = INT(RND * 280) + 1 Y = INT(RND * 160) + 1 IF X <= 12 THEN GOTO POO IF X >= 290 THEN GOTO POO IF Y <= 9 THEN GOTO POO IF Y >= 168 THEN GOTO POO SUUNT = INT(RND * 4) + 1 Bulis(A).X = X Bulis(A).Y = Y Bulis(A).SUUNTA = SUUNT NEXT A END SUB SUB CREDITS SCREEN 0 CLS 'HUOM,TEXTIT PRINT "HUOM!" PRINT "TˇMˇN PELIN HAHMOT OVAT" PRINT "TˇYSIN KEKSITTYJˇ.JOS JOKU SAMANNIMINEN" PRINT "TAI SAMANLAINEN HENKIL™ ON OLEMASSA,ON" PRINT "SE SILKKA SATTUMA. " PRINT "ESIM. ANTTI PUHAKKA (BULIS) ON TˇYSIN " PRINT "KEKSITTY HENKIL™. TˇMˇ PELI ON FREEWAREA" PRINT "ELI SITˇ SAA LEVITTˇˇ VAPAASTI," PRINT "KUNHAN KOODIA EI MUUTETA." PRINT "(PAINA J)" DO LOOP UNTIL INKEY$ = "j" OR INKEY$ = "J" CLS PRINT "MadCar (c)1998" PRINT "" PRINT "OHJELMOINTI :MARKO KYLMˇNEN" PRINT "" PRINT "GRAFIIKKA :MARKO KYLMˇNEN" PRINT PRINT PRINT "E-MAIL:MARKO.KYLMANEN@MBNET.FI" PRINT PRINT " KIITOS KUN PELASIT MADCARIA!!!" DO LOOP UNTIL INKEY$ = CHR$(13) SYSTEM END SUB SUB EXPLOSION PahaPulisPois FOR A = 1 TO BADPULIS EVIL(A).X = 0 NEXT A BADPULIS = 0 PommiVeke POMMI(1) = 0 'EXPLOSION EFFECT FOR i = 1 TO 63 FOR ii = 1 TO 189 OUT (&H3C7), ii r = INP(&H3C9) g = INP(&H3C9) B = INP(&H3C9) r = r + .5 g = g + .5 B = B + .5 r = ABS(r + .5) g = ABS(g + .5) B = ABS(B + .5) OUT (&H3C8), ii OUT (&H3C9), r OUT (&H3C9), g OUT (&H3C9), B NEXT ii 'IF i = 60 THEN GOTO SSPOO NEXT i SSPOO: DO T = T + 1 LOOP UNTIL T = 100000 PALETTE END SUB SUB GAMEOVER RuutuVeks CLS SCREEN 0 DO WAIT &H3DA, 8 LOCATE 10, 15 PRINT "GAME OVER" PRINT COLOR COLPOO PRINT "Ajoit poliisibuliksen p„„lle!" PRINT "Poliisibulis suuttui ja istahti autosi" PRINT "p„„lle!Bulis painoi ainakin tonnin ja " PRINT "autosi muistuttaa nyt rypistynytt„ " PRINT "sardiinirasiaa!" COLPOO = COLPOO + 1 IF COLPOO = 15 THEN COLPOO = 1 LOOP UNTIL INKEY$ = CHR$(13) HIGHSCORES KERTA = 1 RUN "MADCAR.EXE" END SUB SUB GetOldBulis END SUB SUB GetOldPaikkaBack GET (AUTODATA.X - 18, AUTODATA.Y - 14)-(AUTODATA.X + 18, AUTODATA.Y + 14), CARBUFFER 'LINE (AUTODATA.X - 17, AUTODATA.Y - 13)-(AUTODATA.X + 17, AUTODATA.Y + 13), 12, BF END SUB SUB HaudanKaivaja FOR A = 1 TO UKOT IF Bulis(A).X = 0 THEN GOTO KUOLLUT JEEJEEHENGISSATAAS: NEXT A GOTO HENGISSAKAIKKI KUOLLUT: SPOO: X = INT(RND * 280) + 1 Y = INT(RND * 160) + 1 IF X <= 12 THEN GOTO SPOO IF X >= 290 THEN GOTO SPOO IF Y <= 9 THEN GOTO SPOO IF Y >= 168 THEN GOTO SPOO SUUNT = INT(RND * 4) + 1 Bulis(A).X = X Bulis(A).Y = Y Bulis(A).SUUNTA = SUUNT GOTO JEEJEEHENGISSATAAS: HENGISSAKAIKKI: END SUB SUB HIGHSCORES DIM PISTE(10), NIMET$(10) OPEN "SCORES.DAT" FOR INPUT AS #1 FOR A = 1 TO 10 INPUT #1, NIMET$(A) INPUT #1, PISTE(A) NEXT A CLOSE COLOR 8 FOR A = 1 TO 10 IF PISTEET >= PISTE(A) THEN SIJA = A: GOTO KOOA NEXT A KOOA: IF SIJA > 0 THEN CLS PRINT "ONNITTELUNI!PˇˇSIT SIJALLE "; SIJA INPUT "NIMESI:", NAMN$ 'h„h„„! IF UCASE$(NAMN$) = "NICO" THEN NAMN$ = "SEPI" PISTE(SIJA) = PISTEET NIMET$(SIJA) = NAMN$ OPEN "SCORES.DAT" FOR OUTPUT AS #1 FOR A = 1 TO 10 PRINT #1, NIMET$(A) PRINT #1, PISTE(A) NEXT A CLOSE END IF 'NˇYTTˇˇ HIGHSCORES-LISTAN CLS LOCATE 3, 10 PRINT "10 PARASTA KAAHARIA" LOCATE 5, 2 PRINT "NIMI PISTEET" OPEN "SCORES.DAT" FOR INPUT AS #1 FOR A = 1 TO 10 INPUT #1, NIMET$(A) INPUT #1, PISTE(A) LOCATE 6 + A, 1 PRINT NIMET$(A) LOCATE 6 + A, 30 PRINT PISTE(A) NEXT A CLOSE DO LOOP UNTIL INKEY$ = CHR$(13) END SUB SUB HooPixel 'Oma FILL-rutiinini!!!!! 'kattoo miss„ on vapaata tilaa eli ei tietyn v„rist„ ja puttaa sinne sit„ 'v„ri„!!!Nopea,nopeampi,HooPixel! Starttix = AUTODATA.X starttiy = AUTODATA.Y WhatColor = 6 ToColor = 6 MaxFillingArea = 50 SOURCE: PAINT (Starttix, starttiy), WhatColor, ToColor END SUB SUB Kaara CARCOLOR = 6 LINE (x1, y1)-(x2, y2), CARCOLOR LINE (x2, y2)-(x4, y4), CARCOLOR LINE (x4, y4)-(x3, y3), CARCOLOR LINE (x3, y3)-(x1, y1), CARCOLOR 'PAINT (AUTODATA.X, AUTODATA.Y), CARCOLOR, CARCOLOR HooPixel LINE (x1, y1)-(x2, y2), 8 CIRCLE (x1, y1), 1, 14 CIRCLE (x2, y2), 1, 14 'OTA POIS! LINE (x5, y5)-(x6, y6), 1 LINE (x6, y6)-(x8, y8), 1 LINE (x8, y8)-(x7, y7), 1 LINE (x7, y7)-(x5, y5), 1 PAINT (AUTODATA.X, AUTODATA.Y), 1, 1 'LINE 'END WAIT &H3DA, 8 PSET (suuntax, suuntay), 6 PSET (AUTODATA.X, AUTODATA.Y), 1 END SUB SUB KOODIT 'KOODIT: 'MAKEISTHEBEST - AINOASTAAN 1 BULIS 'EXTERMINATOR - puliksesta 50pt 'MAKESREVENGE - ruutu dynyj„ t„ynn„ 'NOCOPS - ei kytti„ WROTE$ = UCASE$(COMMAND$) IF WROTE$ = "MAKEISTHEBEST" THEN KOODI = 1 IF WROTE$ = "EXTERMINATOR" THEN KOODI = 2 IF WROTE$ = "MAKESREVENGE" THEN KOODI = 3 IF WROTE$ = "NOCOPS" THEN KOODI = 4 END SUB SUB LaskeKaaranPaikka 'Kaararutiini eli puttaa auton ruudulle ja laskee ne kulmat koska se 'on niinku v„h„n polygoni eli se niinku py”rii.... 'EKAKSI ENNEN KUIN PIIRETˇˇN AUTO,OTETAAN SE TAUSTA TALTEEN! 'SUUNTA!!!!!VERY IMPORTANT!!!!!!!!!!!!!!!! suuntax = COS(AUTOKULMA + 6) * 5 + AUTODATA.X suuntay = SIN(AUTOKULMA + 6) * 3 + AUTODATA.Y x1 = COS(AUTOKULMA) * 17 + AUTODATA.X y1 = SIN(AUTOKULMA) * 13 + AUTODATA.Y x2 = COS(AUTOKULMA - .8) * 17 + AUTODATA.X y2 = SIN(AUTOKULMA - .8) * 13 + AUTODATA.Y 'RUSK x3 = COS(AUTOKULMA + 2.5) * 17 + AUTODATA.X y3 = SIN(AUTOKULMA + 2.5) * 13 + AUTODATA.Y 'KELT x4 = COS(AUTOKULMA + .8 + 2.5) * 17 + AUTODATA.X y4 = SIN(AUTOKULMA + .8 + 2.5) * 13 + AUTODATA.Y 'TUULILASI tempx = COS(AUTOKULMA + 6) * 8 + AUTODATA.X tempy = SIN(AUTOKULMA + 6) * 6 + AUTODATA.Y x5 = COS(AUTOKULMA + 4) * 9 + tempx y5 = SIN(AUTOKULMA + 4) * 8 + tempy tempx = COS(AUTOKULMA + 6 + 3) * 13 + AUTODATA.X tempy = SIN(AUTOKULMA + 6 + 3 - .2) * 10 + AUTODATA.Y x6 = COS(AUTOKULMA + 5) * 11 + tempx y6 = SIN(AUTOKULMA + 5) * 11 + tempy tempx = COS(AUTOKULMA + 6 * 2) * 8 + AUTODATA.X tempy = SIN(AUTOKULMA + 6 * 2) * 6 + AUTODATA.Y x7 = COS(AUTOKULMA + 4 * 2) * 9 + tempx y7 = SIN(AUTOKULMA + 4 * 2) * 8 + tempy 'tempx = COS(AUTOKULMA + 6 + 3) * 13 + AUTODATA.X 'tempy = SIN(AUTOKULMA + 6 + 3 - .2) * 10 + AUTODATA.Y 'x8 = COS(AUTOKULMA + 6) * 5 + tempx 'y8 = SIN(AUTOKULMA + 6) * 5 + tempy tempx = COS(AUTOKULMA + 6 + 3) * 13 + AUTODATA.X tempy = SIN(AUTOKULMA + 6 + 3 - .2) * 10 + AUTODATA.Y x8 = COS(AUTOKULMA + 12.6) * 8 + tempx y8 = SIN(AUTOKULMA + 12.6) * 4 + tempy END SUB SUB Napit OOT: A$ = INKEY$ A$ = UCASE$(A$) NAPITT$ = NAPITT$ + A$ IF NAPITT$ = CODE1$ THEN GOSUB KOODIUSE A = INP(&H60) IF A = vasen THEN GOTO LEFT IF A = oikea THEN GOTO RIGHT IF A = kaasua THEN GOTO ACCELERATE IF A$ = CHR$(27) THEN RUN "MADCAR.EXE" IF A$ = "P" THEN DO: LOOP WHILE INKEY$ = "" IF A$ = "p" THEN DO: LOOP WHILE INKEY$ = "" IF KERTAA = 0 THEN GOTO OOT GOTO HOOMOILANEN LEFT: OldAutoVeks AUTOKULMA = AUTOKULMA - KULMAJUMP LIIKKUUKSTAAHOSKA = 1 GOTO HOOMOILANEN RIGHT: OldAutoVeks AUTOKULMA = AUTOKULMA + KULMAJUMP LIIKKUUKSTAAHOSKA = 1 GOTO HOOMOILANEN ACCELERATE: CarSpeed = 0 HOOMOILANEN: IF KERTAA = 0 THEN KERTAA = 1 DO LOOP UNTIL INKEY$ = "" GOTO SEPARI KOODIUSE: UKOT = 0 NAPITT$ = "" RETURN SEPARI: END SUB SUB OldAutoVeks PUT (AUTODATA.X - 18, AUTODATA.Y - 14), CARBUFFER, PSET 'LINE (AUTODATA.X - 17, AUTODATA.Y - 13)-(AUTODATA.X + 17, AUTODATA.Y + 13), 12, BF END SUB SUB OsaaPuliksetkinLiikkua PahaPulisPois FOR A = 1 TO UKOT IF Bulis(A).WALK > WALKRAJA THEN GOTO RANDOMIZEE VARAX = Bulis(A).X VARAY = Bulis(A).Y IF Bulis(A).SUUNTA = 1 THEN Bulis(A).Y = Bulis(A).Y - 1 IF Bulis(A).SUUNTA = 2 THEN Bulis(A).X = Bulis(A).X + 1 IF Bulis(A).SUUNTA = 3 THEN Bulis(A).Y = Bulis(A).Y + 1 IF Bulis(A).SUUNTA = 4 THEN Bulis(A).X = Bulis(A).X - 1 GOTO RULES LAINKUULIAISET: Bulis(A).WALK = Bulis(A).WALK + 1 GOTO SIPULI RANDOMIZEE: UUSSUUNTA = INT(RND * 4) + 1 IF UUSSUUNTA = Bulis(A).SUUNTA THEN GOTO RANDOMIZEE Bulis(A).SUUNTA = UUSSUUNTA Bulis(A).WALK = 0 GOTO SIPULI RULES: IF Bulis(A).X <= 12 THEN Bulis(A).X = VARAX: GOTO RANDOMIZEE IF Bulis(A).X >= 290 THEN Bulis(A).X = VARAX: GOTO RANDOMIZEE IF Bulis(A).Y <= 9 THEN Bulis(A).Y = VARAY: GOTO RANDOMIZEE IF Bulis(A).Y >= 168 THEN Bulis(A).Y = VARAY: GOTO RANDOMIZEE GOTO LAINKUULIAISET SIPULI: NEXT A 'PAHAN BULIKSEN LIIKKEET FOR A = 1 TO BADPULIS IF EVIL(A).WALK > WALKRAJA THEN GOTO RAND VARAX = EVIL(A).X VARAY = EVIL(A).Y IF EVIL(A).SUUNTA = 1 THEN EVIL(A).Y = EVIL(A).Y - 1 IF EVIL(A).SUUNTA = 2 THEN EVIL(A).X = EVIL(A).X + 1 IF EVIL(A).SUUNTA = 3 THEN EVIL(A).Y = EVIL(A).Y + 1 IF EVIL(A).SUUNTA = 4 THEN EVIL(A).X = EVIL(A).X - 1 GOTO RULE LAIN: EVIL(A).WALK = EVIL(A).WALK + 1 GOTO SIPU RAND: UUSSUUNTA = INT(RND * 4) + 1 IF UUSSUUNTA = EVIL(A).SUUNTA THEN GOTO RAND EVIL(A).SUUNTA = UUSSUUNTA EVIL(A).WALK = 0 GOTO SIPU RULE: IF EVIL(A).X <= 12 THEN EVIL(A).X = VARAX: GOTO RAND IF EVIL(A).X >= 290 THEN EVIL(A).X = VARAX: GOTO RAND IF EVIL(A).Y <= 9 THEN EVIL(A).Y = VARAY: GOTO RAND IF EVIL(A).Y >= 168 THEN EVIL(A).Y = VARAY: GOTO RAND GOTO LAIN SIPU: NEXT A END SUB SUB PahaPulisPois FOR A = 1 TO UKOT IF Bulis(A).X = 0 THEN GOTO JOOPAJOOHAUDASSAON PUT (Bulis(A).X, Bulis(A).Y), BULIBACKUP, PSET JOOPAJOOHAUDASSAON: NEXT A FOR A = 1 TO BADPULIS PUT (EVIL(A).X, EVIL(A).Y), BULIBACKUP, PSET NEXT A END SUB SUB peliRuutu LINE (0, 9)-(319, 182), 8, B PAINT (10, 183), 1, 8 PAINT (1, 1), 1, 8 END SUB SUB PommiVeke PUT (POMMI(1), POMMI(2)), VARAPOMMI, PSET END SUB SUB Pulis 'Bulikka The Palikka,Bulikka The Palikka............. '->mik„ ihmeen bulikkapalikka? GetOldBulis FOR A = 1 TO UKOT IF Bulis(A).X = 0 THEN GOTO SEONNYKUOLLU IF Bulis(A).SUUNTA = 1 THEN PUT (Bulis(A).X, Bulis(A).Y), BULISUP, PSET IF Bulis(A).SUUNTA = 2 THEN PUT (Bulis(A).X, Bulis(A).Y), BULISRIGHT, PSET IF Bulis(A).SUUNTA = 3 THEN PUT (Bulis(A).X, Bulis(A).Y), BULISDOWN, PSET IF Bulis(A).SUUNTA = 4 THEN PUT (Bulis(A).X, Bulis(A).Y), BULISLEFT, PSET SEONNYKUOLLU: NEXT A FOR A = 1 TO BADPULIS IF EVIL(A).SUUNTA = 1 THEN PUT (EVIL(A).X, EVIL(A).Y), BBULISUP, PSET IF EVIL(A).SUUNTA = 2 THEN PUT (EVIL(A).X, EVIL(A).Y), BBULISRIGHT, PSET IF EVIL(A).SUUNTA = 3 THEN PUT (EVIL(A).X, EVIL(A).Y), BBULISDOWN, PSET IF EVIL(A).SUUNTA = 4 THEN PUT (EVIL(A).X, EVIL(A).Y), BBULISLEFT, PSET NEXT A 'DYNY IF POMMI(1) = 0 THEN GOTO SKIPPERSYOJATSKII PUT (POMMI(1), POMMI(2)), HUIPOMMI, PSET SKIPPERSYOJATSKII: END SUB SUB RuutuVeks FOR i = 1 TO 63 FOR ii = 1 TO 189 OUT (&H3C7), ii r = INP(&H3C9) g = INP(&H3C9) B = INP(&H3C9) r = r - .5 g = g - .5 B = B - .5 r = ABS(r - .5) g = ABS(g - .5) B = ABS(B - .5) OUT (&H3C8), ii OUT (&H3C9), r OUT (&H3C9), g OUT (&H3C9), B NEXT ii PALETTE 0, 0 NEXT i PALETTE END SUB SUB SetSprites CLS 'TAUSTAA GET (10, 10)-(20, 20), BULIBACKUP 'BULIS 'YL™S CIRCLE (20, 20), 5, 2 PAINT (20, 20), 2, 2 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (20, 17), 1, 6 PSET (20, 17), 6 GET (15, 15)-(25, 25), BULISUP CLS CIRCLE (20, 20), 5, 2 PAINT (20, 20), 2, 2 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (23, 20), 1, 6 PSET (23, 20), 6 GET (15, 15)-(25, 25), BULISRIGHT CIRCLE (20, 20), 5, 2 PAINT (20, 20), 2, 2 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (20, 23), 1, 6 PSET (20, 23), 6 GET (15, 15)-(25, 25), BULISDOWN CLS CIRCLE (20, 20), 5, 2 PAINT (20, 20), 2, 2 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (17, 20), 1, 6 PSET (17, 20), 6 GET (15, 15)-(25, 25), BULISLEFT CLS 'Veritahra 'PSET (10, 10), 12 'PSET (11, 10), 12 'PSET (12, 9), 12 'PSET (13, 9), 12 'PSET (14, 9), 12 'PSET (15, 10), 12 CIRCLE (20, 20), 3, 4 PAINT (20, 20), 4, 4 PSET (19, 23), 4 LINE (19, 23)-(23, 23), 4 PSET (16, 21), 4 GET (16, 17)-(23, 23), BLOOD CLS 'PAHA BULIS 'YL™S CIRCLE (20, 20), 5, 1 PAINT (20, 20), 1, 1 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (20, 17), 1, 6 PSET (20, 17), 6 GET (15, 15)-(25, 25), BBULISUP CLS CIRCLE (20, 20), 5, 1 PAINT (20, 20), 1, 1 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (23, 20), 1, 6 PSET (23, 20), 6 GET (15, 15)-(25, 25), BBULISRIGHT CIRCLE (20, 20), 5, 1 PAINT (20, 20), 1, 1 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (20, 23), 1, 6 PSET (20, 23), 6 GET (15, 15)-(25, 25), BBULISDOWN CLS CIRCLE (20, 20), 5, 1 PAINT (20, 20), 1, 1 CIRCLE (20, 20), 2, 14 PAINT (20, 20), 14, 14 CIRCLE (17, 20), 1, 6 PSET (17, 20), 6 GET (15, 15)-(25, 25), BBULISLEFT CLS 'PULISPOMMI!"!"!""" LINE (20, 20)-(22, 26), 14, BF LINE (20, 26)-(20, 20), 182 LINE (20, 20)-(22, 20), 182 PSET (21, 19), 8 PSET (22, 18), 8 GET (20, 18)-(22, 26), HUIPOMMI CLS END SUB SUB SetUp 'Set Up AUTODATA.X = 100 AUTODATA.Y = 50 AUTOKULMA = .1 KULMAJUMP = .1 WALKRAJA = 30 'PIXELIˇ END SUB SUB Showmittarit 'PUTTAA TˇHˇN "PISTEET"-TEKSTI JA MUU KROINA LOCATE 1, 10: PRINT "PISTEET:"; PISTEET END SUB SUB SPLUT IF soundon = 0 THEN GOTO HOOPAA FOR i = 1 TO 10 SOUND RND * 4000 + 50, .25 / 3.5 SOUND RND * 4000 + 50, .25 / 3.5 NEXT i HOOPAA: PahaPulisPois OldAutoVeks PUT (Bulis(NUMERO).X, Bulis(NUMERO).Y), BLOOD, PSET 'NOLLATAAN BULIS,KOSKA SE ON KUOLLUT!!! 'REST IN PEACE!!! Bulis(NUMERO).X = 0 Bulis(NUMERO).Y = 0 Bulis(NUMERO).SUUNTA = 0 Bulis(NUMERO).WALK = 0 PISTEET = PISTEET + 1 LIISKATUT = LIISKATUT + 1 IF KOODI = 2 THEN PISTEET = PISTEET + 49 MILLOSSEPOMMITULEE = MILLOSSEPOMMITULEE + 1 IF KOODI = 3 THEN MILLOSSEPOMMITULEE = UKOT * 5 IF LIISKATUT = maxiukot THEN LIISKATUT = 0 IF KOODI = 4 THEN GOTO NOPE BADPULIS = BADPULIS + 1 IF KOODI = 1 AND BADPULIS = 2 THEN BADPULIS = 1: GOTO NOPE DPOO: X = INT(RND * 280) + 1 Y = INT(RND * 160) + 1 IF X <= 12 THEN GOTO DPOO IF X >= 290 THEN GOTO DPOO IF Y <= 9 THEN GOTO DPOO IF Y >= 168 THEN GOTO DPOO SUUNT = INT(RND * 4) + 1 EVIL(BADPULIS).X = X EVIL(BADPULIS).Y = Y EVIL(BADPULIS).SUUNTA = SUUNT NOPE: END IF IF MILLOSSEPOMMITULEE = 5 * UKOT THEN MILLOSSEPOMMITULEE = 0 SDPOO: X = INT(RND * 280) + 1 Y = INT(RND * 160) + 1 IF X <= 12 THEN GOTO SDPOO IF X >= 290 THEN GOTO SDPOO IF Y <= 9 THEN GOTO SDPOO IF Y >= 168 THEN GOTO SDPOO POMMI(1) = X POMMI(2) = Y GET (POMMI(1), POMMI(2))-(POMMI(1) + 2, POMMI(2) + 6), VARAPOMMI END IF END SUB SUB Tuleeksbuliksestalettu FOR A = 1 TO UKOT NUMERO = A 'IF x1 >= Bulis(A).X - 10 AND x1 <= Bulis(A).X + 10 AND y1 >= Bulis(A).Y - 10 AND y1 <= Bulis(A).Y + 10 THEN SPLUT 'IF x2 >= Bulis(A).X - 10 AND x2 <= Bulis(A).X + 10 AND y2 >= Bulis(A).Y - 10 AND y2 <= Bulis(A).Y + 10 THEN SPLUT IF x1 >= Bulis(A).X AND x1 <= Bulis(A).X + 10 AND y1 >= Bulis(A).Y AND y1 <= Bulis(A).Y + 10 THEN SPLUT IF x2 >= Bulis(A).X AND x2 <= Bulis(A).X + 10 AND y2 >= Bulis(A).Y AND y2 <= Bulis(A).Y + 10 THEN SPLUT IF suuntax >= Bulis(A).X AND suuntax <= Bulis(A).X + 10 AND suuntay >= Bulis(A).Y AND suuntay <= Bulis(A).Y + 10 THEN SPLUT NEXT A FOR A = 1 TO BADPULIS 'IF x1 >= EVIL(A).X - 10 AND x1 <= EVIL(A).X + 10 AND y1 >= EVIL(A).Y - 10 AND y1 <= EVIL(A).Y + 10 THEN GAMEOVER 'IF x2 >= EVIL(A).X - 10 AND x2 <= EVIL(A).X + 10 AND y2 >= EVIL(A).Y - 10 AND y2 <= EVIL(A).Y + 10 THEN GAMEOVER IF x1 >= EVIL(A).X AND x1 <= EVIL(A).X + 10 AND y1 >= EVIL(A).Y AND y1 <= EVIL(A).Y + 10 THEN GAMEOVER IF x2 >= EVIL(A).X AND x2 <= EVIL(A).X + 10 AND y2 >= EVIL(A).Y AND y2 <= EVIL(A).Y + 10 THEN GAMEOVER IF suuntax >= EVIL(A).X AND suuntax <= EVIL(A).X + 10 AND suuntay >= EVIL(A).Y AND suuntay <= EVIL(A).Y + 10 THEN GAMEOVER NEXT A IF x1 >= POMMI(1) - 5 AND x1 <= POMMI(1) + 5 AND y1 >= POMMI(2) - 4 AND y1 <= POMMI(2) + 9 THEN EXPLOSION IF x2 >= POMMI(1) - 5 AND x2 <= POMMI(1) + 5 AND y2 >= POMMI(2) - 4 AND y2 <= POMMI(2) + 9 THEN EXPLOSION IF suuntax >= POMMI(1) - 5 AND suuntax <= POMMI(1) + 5 AND suuntay >= POMMI(2) - 4 AND suuntay <= POMMI(2) + 9 THEN EXPLOSION END SUB SUB VALIKKO JEPULIS: CLS 'MADCAR-TEXTI LINE (50, 60)-(50, 30), 1 LINE (48, 58)-(60, 60), 1, BF LINE (58, 60)-(58, 40), 1 LINE (48, 28)-(60, 30), 1, BF LINE (60, 30)-(75, 45), 1 LINE (75, 45)-(90, 30), 1 LINE (90, 30)-(102, 28), 1, BF LINE (100, 28)-(100, 60), 1 LINE (102, 60)-(90, 58), 1, BF LINE (92, 58)-(92, 40), 1 LINE (92, 40)-(77, 55), 1 LINE -(58, 40), 1 'AAAAAA LINE (120, 60)-(132, 58), 1, BF LINE (122, 57)-(140, 30), 1 LINE (138, 28)-(150, 30), 1, BF LINE (148, 31)-(166, 58), 1 LINE (168, 58)-(156, 60), 1, BF LINE (158, 57)-(148, 45), 1 LINE -(140, 45), 1 LINE -(130, 57), 1 'DDDDDD CIRCLE (188, 45), 19, 1 LINE (188, 29)-(188, 60), 1 LINE (169, 30)-(187, 80), 0, BF COLOR 4 LOCATE 9, 15: PRINT "CAR" 'MENU LOCATE 15, 10 PRINT "1 ALOITA PELI" LOCATE 16, 10 PRINT "2 PARHAAT 10 PELAAJAA" LOCATE 17, 10 PRINT "3 LOPETA" LOCATE 1, 18 COLOR 4 PRINT "TEHNYT "; COLOR 2 PRINT "MARKO KYLMˇNEN" APOO: A$ = INKEY$ IF A$ = "1" THEN GOTO PLAYY IF A$ = "2" THEN PISTEET = 0: HIGHSCORES: GOTO JEPULIS IF A$ = "3" THEN CREDITS GOTO APOO PLAYY: SCREEN 0 CLS PRINT "T„ss„ peliss„ on tarkoitus" PRINT "ajaa niin monen buliksen" PRINT "p„„lt„ kuin mahdollista." PRINT "Ohjaa autoa nuolin„pp„imill„," PRINT "painamalla eteenp„in, auto l„htee" PRINT "liikkeelle, mutta et voi en„„" PRINT "pys„ytt„„ sit„! Kun olet ajanut" PRINT maxiukot; ":N buliksen p„„lle," PRINT "ilmestyy pelikent„lle poliisibulis," PRINT "joita pit„„ varoa.Aina tasaisin v„li-" PRINT "ajoin ruudulle ilmestyy pommeja." PRINT "Niit„ ker„„m„ll„ kaikki poliisibulik-" PRINT "set r„j„ht„v„t.Joka buliksesta" PRINT "saat yhden pisteen! Onnea matkaan!!!" DO LOOP UNTIL INKEY$ = CHR$(13) SCREEN 13 'RuutuVeks CLS END SUB