'=========================================================================== ' Subject: TRASH MAN (LIKE PAC-MAN) Date: 10-11-98 (14:00) ' Author: Dan Egbert Code: QB, QBasic, PDS ' Origin: qbasic.com Packet: GAMES.ABC '=========================================================================== ' *************** ' * Trash Man * ' *by Dan Egbert* ' *v. 1.2 * ' * * ' *************** 'Modified 8/18/98 by David Zohrob (mallard@qbasic.com) for a delay delay = 15000 'this is for my p200 mmx - dz SCREEN 12 'Const's CONST black = 0, lgray = 1, dgray = 2, white = 3, yellow = 4, tann = 5 CONST dgreen = 6, lblue = 7, blue = 8, dblue = 9, dred = 10, orange = 11 CONST pink = 12, red = 13, lgreen = 14, br = 15 CONST false = 0, true = -1 CONST pi = 3.14 'Other Const's CONST wide = 35, high = 35, empty = 16, wall1 = 1, trash = 0 CONST grass = 8 CONST numrows = 13, numcols = 18 'Pictures Const's CONST truck = 3, dead = 5, banana = 10, can = 11, fish = 12, canow = 13 CONST tman = 14, bug = 15, road = 9 'Moving const's CONST up = 1, down = 2, lefty = 3, righty = 4 '************** '**************************************************************************** 'Dims DIM truckl(310): DIM truckr(310): DIM banana(310): DIM trashman(310): DIM can(310) DIM canowr(310): DIM canowl(310): DIM canowu(310): DIM canowd(310): DIM fish(310) DIM trucku(310): DIM truckd(310): DIM trashmr(310): DIM trashml(310): DIM trashmd(310) DIM trashmu(310): DIM bug(310): DIM deadtman(310): DIM grass(310): DIM building1(310) DIM building2(310): DIM building3(310): DIM road(310): DIM orb(310) DIM board(numrows, numcols) '**************************************************************************** 'Palette's PALETTE black, 65536 * 0 + 256 * 0 + 0 PALETTE lgray, 65536 * 31 + 256 * 31 + 31 PALETTE dgray, 65536 * 27 + 256 * 23 + 20 PALETTE white, 65536 * 63 + 256 * 63 + 63 PALETTE yellow, 65536 * 30 + 256 * 63 + 63 PALETTE tann, 65536 * 30 + 256 * 43 + 63 PALETTE dgreen, 65536 * 0 + 256 * 10 + 0 PALETTE lblue, 65536 * 63 + 256 * 50 + 0 PALETTE blue, 65536 * 63 + 256 * 22 + 0 PALETTE dblue, 65536 * 63 + 256 * 0 + 0 PALETTE dred, 65536 * 0 + 256 * 0 + 63 PALETTE orange, 65536 * 0 + 256 * 40 + 63 PALETTE pink, 65536 * 30 + 256 * 0 + 63 PALETTE red, 65536 * 15 + 256 * 0 + 63 PALETTE lgreen, 65536 * 0 + 256 * 40 + 0 PALETTE br, 65536 * 9 + 256 * 20 + 30 '**************************************************************************** 'Main Program GOSUB picts GOSUB title GOSUB menu END '**************************************************************************** picts: GOSUB truck: GOSUB truck2: GOSUB banana: GOSUB can: GOSUB canowr: GOSUB canowl GOSUB canowu: GOSUB canowd: GOSUB orb: GOSUB fish: GOSUB trucku: GOSUB truckd GOSUB trashmr: GOSUB trashml: GOSUB trashmd: GOSUB trashmu: GOSUB bug: GOSUB deadtman GOSUB grass: GOSUB building1: GOSUB building2: GOSUB building3: GOSUB road RETURN '**************************************************************************** 'Truck going left truck: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (10, 11)-(30, 25), br, BF LINE (10, 15)-(5, 20), br LINE (5, 20)-(5, 25), br LINE (5, 25)-(10, 25), br PAINT (7, 23), br CIRCLE (25, 27), 3, dgray PAINT (25, 27), black, dgray CIRCLE (12, 27), 3, dgray PAINT (12, 27), black, dgray LINE (11, 12)-(16, 14), lgray, BF CIRCLE (6, 23), 1, yellow PAINT (6, 23), yellow, yellow GET (1, 1)-(35, 35), truckl RETURN '*************************** 'Truck going right truck2: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (5, 11)-(25, 25), br, BF LINE (25, 15)-(30, 20), br LINE (30, 20)-(30, 25), br LINE (30, 25)-(25, 25), br PAINT (27, 23), br CIRCLE (23, 27), 3, dgray PAINT (23, 27), black, dgray CIRCLE (10, 27), 3, dgray PAINT (10, 27), black, dgray LINE (19, 12)-(24, 14), lgray, BF CIRCLE (29, 23), 1, yellow PAINT (29, 23), yellow, yellow GET (1, 1)-(35, 35), truckr RETURN '*************************** 'truck going up trucku: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (5, 5)-(30, 30), br, BF CIRCLE (10, 30), 6, black, pi * 1, pi * 2, 3 LINE (8, 30)-(13, 30), black PAINT (10, 31), black, black CIRCLE (26, 30), 6, black, pi * 1, pi * 2, 3 LINE (24, 30)-(29, 30), black PAINT (26, 31), black, black GET (1, 1)-(35, 35), trucku RETURN '*************************** banana: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (18, 20), 14, black, 1.2 * pi, 2 * pi CIRCLE (18, 20), 8, black, 1.3 * pi, 2 * pi CIRCLE (18, 20), 10, black, 1.3 * pi, 2 * pi LINE (13, 26)-(8, 27), black LINE (26, 20)-(25, 6), black LINE (25, 5)-(28, 6), black LINE (28, 6)-(32, 20), black LINE (10, 28)-(13, 29), black PAINT (18, 31), yellow, black GET (1, 1)-(35, 35), banana RETURN '**************************** 'truck going down truckd: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (5, 5)-(30, 30), br, BF CIRCLE (10, 30), 6, black, pi * 1, pi * 2, 3 LINE (8, 30)-(13, 30), black PAINT (10, 31), black, black CIRCLE (26, 30), 6, black, pi * 1, pi * 2, 3 LINE (24, 30)-(29, 30), black PAINT (26, 31), black, black CIRCLE (8, 25), 2, yellow PAINT (8, 25), yellow, yellow CIRCLE (27, 25), 2, yellow PAINT (27, 25), yellow, yellow LINE (13, 17)-(22, 27), black, BF FOR x = 13 TO 23 STEP 2 LINE (x, 13)-(x, 27), br LINE (10, 9)-(25, 14), lgray, BF NEXT x GET (1, 1)-(35, 35), truckd RETURN '*************************** banana2: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (1, 30)-(17, 26), yellow LINE (15, 15)-(17, 25), yellow LINE (15, 15)-(20, 17), yellow LINE (20, 17)-(23, 25), yellow LINE (23, 25)-(35, 30), yellow LINE (1, 35)-(35, 35), yellow LINE (1, 35)-(1, 30), yellow LINE (35, 35)-(35, 30), yellow PAINT (20, 27), yellow, yellow GET (1, 1)-(35, 35), banana RETURN '*************************** trashmr: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 10), 5, orange PAINT (17, 10), orange, orange CIRCLE (19, 9), 0, black CIRCLE (21, 12), 3, black, pi * 1, pi * 1.5, .5 LINE (17, 10)-(17, 25), orange LINE (17, 25)-(12, 32), orange LINE (17, 25)-(22, 32), orange LINE (17, 20)-(12, 25), orange LINE (17, 20)-(22, 25), orange GET (1, 1)-(35, 35), trashmr RETURN '*************************** trashml: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 10), 5, orange PAINT (17, 10), orange, orange CIRCLE (15, 9), 0, black CIRCLE (15, 12), 3, black, pi * 1.4, pi * 2, .5 LINE (17, 10)-(17, 25), orange LINE (17, 25)-(12, 32), orange LINE (17, 25)-(22, 32), orange LINE (17, 20)-(12, 25), orange LINE (17, 20)-(22, 25), orange GET (1, 1)-(35, 35), trashml RETURN '*************************** trashmd: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 10), 5, orange PAINT (17, 10), orange, orange CIRCLE (19, 9), 0, black CIRCLE (15, 9), 0, black CIRCLE (17, 12), 3, black, pi * 1, pi * 2, .5 LINE (17, 10)-(17, 25), orange LINE (17, 25)-(12, 32), orange LINE (17, 25)-(22, 32), orange LINE (17, 20)-(12, 25), orange LINE (17, 20)-(22, 25), orange GET (1, 1)-(35, 35), trashmd RETURN '*************************** trashmu: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 10), 5, orange PAINT (17, 10), orange, orange LINE (17, 10)-(17, 25), orange LINE (17, 25)-(12, 32), orange LINE (17, 25)-(22, 32), orange LINE (17, 20)-(12, 25), orange LINE (17, 20)-(22, 25), orange GET (1, 1)-(35, 35), trashmu RETURN '*************************** deadtman: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (7, 27), 5, orange PAINT (7, 27), orange, orange LINE (7, 27)-(25, 27), orange LINE (25, 27)-(30, 24), orange LINE (30, 24)-(33, 26), orange LINE (25, 27)-(29, 32), orange LINE (29, 32)-(32, 30), orange LINE (20, 27)-(23, 20), orange LINE (20, 27)-(23, 31), orange LINE (5, 25)-(8, 28), black LINE (8, 25)-(5, 28), black LINE (10, 23)-(10, 26), black LINE (10, 26)-(12, 27), black GET (1, 1)-(35, 35), deadtman RETURN '*************************** can: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 10), 7, black, , , .3 LINE (10, 10)-(10, 30), black LINE (24, 10)-(24, 30), black PAINT (17, 10), black, black CIRCLE (17, 30), 7, black, pi * 1, 0, .3 CIRCLE (17, 25), 7, black, pi * 1, 0, .3 CIRCLE (17, 15), 7, black, pi * 1, 0, .3 PAINT (17, 13), dgray, black PAINT (17, 25), br, black PAINT (17, 30), dgray, black GET (1, 1)-(35, 35), can RETURN '************************* canowr: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (5, 20), 7, black, pi * .5, pi * 1.5, 3 LINE (5, 13)-(25, 13), black LINE (5, 27)-(25, 27), black CIRCLE (27, 20), 7, black, , , 3 PAINT (27, 20), black, black LINE (4, 23)-(8, 27), black LINE (4, 17)-(14, 27), black LINE (6, 12)-(21, 27), black LINE (15, 12)-(25, 25), black LINE (4, 18)-(8, 14), black LINE (4, 24)-(14, 14), black LINE (6, 26)-(20, 14), black LINE (12, 26)-(25, 14), black LINE (18, 26)-(27, 16), black CIRCLE (8, 30), 3, dgray PAINT (8, 30), black, dgray CIRCLE (20, 30), 3, dgray PAINT (20, 30), black, dgray GET (1, 1)-(35, 35), canowr RETURN '************************** canowl: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (5, 20), 7, black, , , 3 LINE (5, 13)-(25, 13), black LINE (5, 27)-(25, 27), black CIRCLE (27, 20), 7, black, pi * 1.5, pi * .5, 3 PAINT (5, 20), black, black LINE (4, 23)-(8, 27), black LINE (4, 17)-(14, 27), black LINE (6, 12)-(21, 27), black LINE (15, 12)-(25, 25), black LINE (4, 18)-(8, 14), black LINE (4, 24)-(14, 14), black LINE (6, 26)-(20, 14), black LINE (12, 26)-(25, 14), black LINE (18, 26)-(27, 16), black CIRCLE (11, 30), 3, dgray PAINT (11, 30), black, dgray CIRCLE (23, 30), 3, dgray PAINT (23, 30), black, dgray GET (1, 1)-(35, 35), canowl RETURN '*************************** canowu: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 17), 7, dgray PAINT (17, 17), black, dgray CIRCLE (13, 25), 4, dgray, .7 * pi, 2 * pi, 2 PAINT (13, 25), black, dgray CIRCLE (20, 25), 4, dgray, .8 * pi, .2 * pi, 2 PAINT (20, 25), black, dgray GET (1, 1)-(35, 35), canowu RETURN '*************************** canowd: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 17), 7, dgray CIRCLE (17, 17), 4, dgray PAINT (17, 17), black, dgray CIRCLE (13, 25), 4, dgray, .7 * pi, 2 * pi, 2 PAINT (13, 25), black, dgray CIRCLE (20, 25), 4, dgray, .8 * pi, .2 * pi, 2 PAINT (20, 25), black, dgray LINE (17, 17)-(24, 17), black LINE (17, 17)-(23, 13), black LINE (17, 17)-(17, 10), black LINE (17, 17)-(12, 13), black LINE (17, 17)-(10, 17), black LINE (17, 17)-(12, 22), black LINE (17, 17)-(17, 23), black LINE (17, 17)-(22, 21), black GET (1, 1)-(35, 35), canowd RETURN '*************************** orb: CLS FOR x = 1 TO 35 colory = INT(RND * 10) + 1 LINE (1, x)-(35, x), colory NEXT x FOR x = 1 TO 16 colory = INT(RND * 10) + 1 CIRCLE (17, 17), x, colory NEXT x GET (1, 1)-(35, 35), orb RETURN '*************************** fish: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (5, 17)-(25, 17), white FOR x = 5 TO 25 STEP 5 LINE (x - 3, 14)-(x, 17), white LINE (x - 3, 20)-(x, 17), white NEXT x LINE (25, 12)-(25, 23), white CIRCLE (25, 18), 6, white, pi * 1.5, pi * .5 CIRCLE (27, 16), 1, white PAINT (27, 18), dgray, white GET (1, 1)-(35, 35), fish RETURN '************************** 'Litter Bug bug: CLS LINE (1, 1)-(35, 35), lgray, BF CIRCLE (17, 17), 12, red, , , 1.5 PAINT (17, 17), red, red CIRCLE (14, 17), 2, black CIRCLE (18, 11), 2, black CIRCLE (16, 23), 2, black CIRCLE (21, 18), 2, black PAINT (14, 17), black, black PAINT (18, 11), black, black PAINT (16, 23), black, black PAINT (21, 18), black, black LINE (24, 24)-(30, 28), black LINE (25, 17)-(31, 21), black LINE (24, 10)-(30, 14), black LINE (10, 24)-(4, 28), black LINE (9, 17)-(3, 21), black LINE (10, 10)-(4, 14), black GET (1, 1)-(35, 35), bug RETURN '************************* 'grass grass: CLS LINE (1, 1)-(35, 35), lgreen, BF LINE (1, 35)-(5, 30), dgreen LINE (5, 30)-(10, 33), dgreen LINE (10, 33)-(10, 28), dgreen LINE (10, 28)-(15, 33), dgreen LINE (15, 33)-(17, 23), dgreen LINE (17, 23)-(21, 35), dgreen LINE (21, 35)-(23, 26), dgreen LINE (23, 26)-(25, 34), dgreen LINE (25, 35)-(29, 30), dgreen LINE (29, 30)-(35, 35), dgreen GET (1, 1)-(35, 35), grass RETURN '************************** 'Building 1 building1: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (2, 2)-(34, 34), dred, BF FOR y = 4 TO 32 STEP 8 FOR x = 4 TO 32 STEP 8 LINE (x, y)-(x + 4, y + 4), yellow, BF NEXT x NEXT y GET (1, 1)-(35, 35), building1 RETURN '************************** ' Building 2 :Mc Donalds building2: LINE (1, 1)-(35, 35), lgray, BF LINE (5, 20)-(30, 33), br, BF LINE (2, 20)-(33, 20), br LINE (5, 16)-(30, 16), br LINE (5, 16)-(2, 20), br LINE (30, 16)-(33, 20), br PAINT (10, 18), brown, br CIRCLE (15, 16), 8, yellow, 2 * pi, 1 * pi, 3 CIRCLE (21, 16), 8, yellow, 2 * pi, 1 * pi, 3 LINE (14, 25)-(22, 33), black, B LINE (18, 25)-(18, 33), black LINE (7, 25)-(11, 29), lgray, BF LINE (29, 25)-(25, 29), lgray, BF FOR x = 28 TO 30 PSET (17, x), black PSET (19, x), black NEXT x GET (1, 1)-(35, 35), building2 RETURN '**************************** 'Building 3: House building3: CLS LINE (1, 1)-(35, 35), lgray, BF LINE (6, 15)-(30, 34), tann, BF LINE (3, 15)-(10, 10), tann LINE (10, 10)-(26, 10), tann LINE (26, 10)-(33, 15), tann LINE (33, 15)-(3, 15), tann PAINT (10, 13), dblue, tann LINE (15, 25)-(22, 34), black, B CIRCLE (20, 30), 1, black PAINT (20, 30), black, black LINE (8, 17)-(13, 23), black, B LINE (23, 17)-(28, 23), black, B GET (1, 1)-(35, 35), building3 RETURN '************************** 'Road road: CLS LINE (1, 1)-(35, 35), lgray, BF GET (1, 1)-(35, 35), road RETURN '************************** '**************************************************************************** ' Title Screen title: PALETTE lgray, 65536 * 0 + 256 * 0 + 0 COLOR dblue CLS LOCATE 10, 32 PRINT "T R A S H" LINE (170, 200)-(170, 250), dred LINE (170, 200)-(200, 220), dred LINE (200, 220)-(230, 200), dred LINE (230, 200)-(230, 250), dred LINE (230, 250)-(220, 250), dred LINE (220, 250)-(220, 225), dred LINE (220, 225)-(200, 235), dred LINE (200, 235)-(180, 225), dred LINE (180, 225)-(180, 250), dred LINE (180, 250)-(170, 250), dred PAINT (175, 235), dblue, dred LINE (250, 250)-(270, 200), dred LINE (270, 200)-(290, 250), dred LINE (290, 250)-(280, 250), dred LINE (280, 250)-(275, 240), dred LINE (275, 240)-(265, 240), dred LINE (265, 240)-(260, 250), dred LINE (260, 250)-(250, 250), dred LINE (265, 230)-(275, 230), dred LINE (265, 230)-(270, 220), dred LINE (270, 220)-(275, 230), dred PAINT (270, 233), dblue, dred LINE (310, 250)-(320, 200), dred LINE (320, 200)-(335, 200), dred LINE (335, 200)-(345, 235), dred LINE (345, 235)-(360, 200), dred LINE (360, 200)-(375, 200), dred LINE (375, 200)-(350, 250), dred LINE (350, 250)-(340, 250), dred LINE (340, 250)-(330, 215), dred LINE (330, 215)-(320, 250), dred LINE (320, 250)-(310, 250), dred PAINT (325, 205), dblue, dred WHILE INKEY$ = "" WEND FOR y = 140 TO 220 STEP 10 FOR x = 120 TO 375 STEP 4 PUT (x, y), truckr, PSET NEXT x SOUND 200, 1 y = y + 10 IF y = 230 THEN gh = 1 ELSE gh = 120 END IF FOR x = 375 TO gh STEP -4 PUT (x, y), truckl, PSET NEXT x NEXT y CLS PALETTE lgray, 65536 * 31 + 256 * 31 + 31 speed = 2500 RETURN '**************************************************************************** 'the menu menu: WHILE NOT dd CLS FOR x = 200 TO 400 STEP 35 PUT (x, 150), truckr NEXT x FOR x = 200 TO 400 STEP 35 PUT (x, 290), truckl NEXT x FOR x = 185 TO 255 STEP 35 PUT (375, x), truckd NEXT x FOR x = 185 TO 255 STEP 35 PUT (200, x), trucku NEXT x COLOR blue LOCATE 13, 31 PRINT "1) Play Game" LOCATE 14, 31 PRINT "2) Instructions" LOCATE 15, 31 PRINT "3) Top Ten" LOCATE 16, 31 PRINT "4) Options" LOCATE 17, 31 PRINT "5) Quit" LOCATE 18, 31 INPUT "Which one: ", ww$ IF ww$ = "1" THEN GOSUB playgame ELSEIF ww$ = "2" THEN GOSUB instruc ELSEIF ww$ = "3" THEN GOSUB topten ELSEIF ww$ = "4" THEN GOSUB options ELSEIF ww$ = "5" THEN dd = true ELSEIF ww$ = "TM credits" THEN GOSUB credits ELSEIF ww$ = "ORB" THEN GOSUB playgame ELSEIF ww$ = "Atrus speaks" THEN GOSUB atrus ELSEIF ww$ = "TM gallery" THEN GOSUB gallery ELSEIF ww$ = "Trash Man" THEN GOSUB tmanf ELSEIF ww$ = "invincible" THEN GOSUB playgame ELSEIF ww$ = "confusion" THEN GOSUB playgame ELSEIF ww$ = "more points" THEN GOSUB playgame END IF WEND RETURN '**************************************************************************** 'play game playgame: GOSUB getsetup done = false GOSUB gameset WHILE NOT done doner = false numtrash = 0 GOSUB screensetup c$ = INKEY$ WHILE NOT doner IF c$ <> "" THEN GOSUB keypressed END IF GOSUB bmovement GOSUB movement FOR x = 1 TO speed: NEXT x c$ = INKEY$ LOCATE 28, 35 PRINT "Level "; level LOCATE 28, 1 PRINT "Score "; newscore LOCATE 28, 70 PRINT "Lives"; lives IF numtrash = 0 THEN IF level <> 7 THEN GOSUB levelpass doner = true level = level + 1 ELSE GOSUB credits GOSUB endin GOSUB entertop RETURN END IF END IF WEND WEND RETURN '**************************************************************************** screensetup: IF level = 1 THEN RESTORE Board1 ELSEIF level = 2 THEN RESTORE Board2 ELSEIF level = 3 THEN RESTORE Board3 ELSEIF level = 4 THEN RESTORE Board4 ELSEIF level = 5 THEN RESTORE Board5 ELSEIF level = 6 THEN RESTORE Board6 ELSEIF level = 7 THEN RESTORE Board7 END IF CLS prow = 12: pcol = 17 brow(1) = 2: bcol(1) = 2: bdirection(1) = righty brow(2) = 2: bcol(2) = 2: bdirection(2) = righty brow(3) = 2: bcol(3) = 2: bdirection(3) = down FOR row = 1 TO numrows FOR col = 1 TO numcols READ board(row, col) IF board(row, col) = trash THEN trashs = INT(RND * 3) + 1 IF trashs = 1 THEN PUT ((col - 1) * wide, (row - 1) * high), banana, PSET board(row, col) = banana ELSEIF trashs = 2 THEN PUT ((col - 1) * wide, (row - 1) * high), can, PSET board(row, col) = can ELSEIF trashs = 3 THEN PUT ((col - 1) * wide, (row - 1) * high), fish, PSET board(row, col) = fish END IF numtrash = numtrash + 1 ELSEIF board(row, col) = grass THEN PUT ((col - 1) * wide, (row - 1) * high), grass, PSET ELSEIF board(row, col) = wall1 THEN IF ww$ = "ORB" THEN PUT ((col - 1) * wide, (row - 1) * high), orb, PSET ELSEIF ww$ = "confusion" THEN trashs = INT(RND * 3) + 1 IF trashs = 1 THEN PUT ((col - 1) * wide, (row - 1) * high), banana, PSET board(brow, bcol) = banana ELSEIF trashs = 2 THEN PUT ((col - 1) * wide, (row - 1) * high), can, PSET board(brow, bcol) = can ELSEIF trashs = 3 THEN PUT ((col - 1) * wide, (row - 1) * high), fish, PSET board(brow, bcol) = fish END IF ELSE buildings = INT(RND * 3) + 1 IF buildings = 1 THEN PUT ((col - 1) * wide, (row - 1) * high), building1, PSET ELSEIF buildings = 2 THEN PUT ((col - 1) * wide, (row - 1) * high), building2, PSET ELSEIF buildings = 3 THEN PUT ((col - 1) * wide, (row - 1) * high), building3, PSET END IF END IF ELSEIF board(row, col) = empty THEN IF vehic$ = "1" THEN PUT ((col - 1) * wide, (row - 1) * high), trucku, PSET ELSEIF vehic$ = "2" THEN PUT ((col - 1) * wide, (row - 1) * high), canowu, PSET ELSEIF vehic$ = "3" THEN PUT ((col - 1) * wide, (row - 1) * high), trashmu, PSET ELSEIF vehic$ = "bug" THEN PUT ((col - 1) * wide, (row - 1) * high), bug, PSET END IF board(row, col) = road END IF NEXT col NEXT row SLEEP RETURN '**************************************************************************** Board1: DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,1,1,1,1,1,0,1,1,1,1,1,0,0,0,1 DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 RETURN '**************************************************************************** Board2: DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1 DATA 1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 RETURN '************************************** Board3: DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1 DATA 1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1 DATA 1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1 DATA 1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1 DATA 1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1 DATA 1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1 DATA 1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 RETURN '**************************************************************************** Board4: DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,0,1 DATA 1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1 DATA 1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1 DATA 1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0,1 DATA 1,0,0,1,0,0,1,0,1,0,1,0,0,0,0,1,0,1 DATA 1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,1,0,1 DATA 1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1 DATA 1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1 DATA 1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,16,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 RETURN '**************************************************************************** Board6: DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,1 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 RETURN '**************************************************************************** Board5: DATA 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DATA 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 DATA 8,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,8 DATA 8,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,8 DATA 8,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,8 DATA 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 DATA 8,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,8 DATA 8,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,8 DATA 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 DATA 8,0,8,8,8,8,8,8,0,0,8,8,8,8,8,8,0,8 DATA 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8 DATA 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,8 DATA 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 RETURN '**************************************************************************** Board7: DATA 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DATA 8,0,0,8,8,8,8,8,8,8,8,0,8,8,8,0,8,8 DATA 8,8,0,8,0,0,0,8,0,0,0,0,0,0,0,0,8,8 DATA 8,8,0,0,0,8,0,8,0,8,0,8,8,8,8,8,8,8 DATA 8,8,8,8,8,8,0,0,0,8,0,8,8,0,0,0,8,8 DATA 8,0,0,0,0,0,8,8,8,8,0,0,0,0,8,0,8,8 DATA 8,0,8,8,8,0,0,0,0,8,8,8,8,8,8,0,8,8 DATA 8,0,0,0,0,8,8,8,0,0,0,0,0,0,0,0,8,8 DATA 8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8 DATA 8,8,0,0,0,8,8,8,8,8,8,8,0,0,0,8,8,8 DATA 8,8,0,8,8,8,0,0,0,0,0,0,0,8,0,0,8,8 DATA 8,8,0,0,0,0,0,8,8,8,8,8,8,8,8,0,16,8 DATA 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 RETURN '**************************************************************************** getsetup: CLS INPUT "What is your name? ", newname$ CLS DO PUT (300, 100), truckr PUT (200, 200), canowr PUT (400, 200), trashmr LOCATE 16, 28 PRINT "2" LOCATE 17, 18 PRINT "Trash Can On Wheels" LOCATE 16, 53 PRINT "3" LOCATE 17, 49 PRINT "Trash Man" LOCATE 5, 40 PRINT "1" LOCATE 6, 35 PRINT "Garbage Truck" LOCATE 28, 24 INPUT "Which vehicle do you want to use? ", vehic$ CLS LOOP UNTIL vehic$ < "4" AND vehic$ > "0" OR vehic$ = "bug" CLS IF vehic$ = "1" THEN PUT (300, 200), truckr LOCATE 16, 35 PRINT "Garbage Truck" SLEEP 1 ELSEIF vehic$ = "2" THEN PUT (300, 200), canowr LOCATE 16, 36 PRINT "Trash Can" LOCATE 17, 36 PRINT "On Wheels" SLEEP 1 ELSEIF vehic$ = "3" THEN PUT (300, 200), trashmr LOCATE 16, 36 PRINT "Trash Man" SLEEP 1 END IF passdone = false WHILE NOT passdone DO CLS INPUT "What level?(1-4) ", levelq LOOP UNTIL levelq < 8 AND levelq > 0 IF levelq > 4 AND levelq < 8 THEN INPUT "Enter Password ", onetopass$ IF onetopass$ = "Atrus" THEN level = levelq passdone = true END IF ELSE level = levelq passdone = true END IF WEND RETURN '**************************************************************************** instruc: CLS PRINT "The object of the game is to pick up all of the trash laying around the screen." PRINT "But there will be litter bugs wandering around the screen. If you run" PRINT "into one you will die. But if you still have a life left you can continue" PRINT "with just as much trash pick up as when you died." PRINT "TIP: Most the time if you get stuck somewhere you can just press q to stop it." LOCATE 29, 35 INPUT "Press ", intent$ RETURN '**************************************************************************** keypressed: IF c$ = CHR$(0) + "H" THEN direction = up ELSEIF c$ = CHR$(0) + "P" THEN direction = down ELSEIF c$ = CHR$(0) + "M" THEN direction = righty ELSEIF c$ = CHR$(0) + "K" THEN direction = lefty END IF IF c$ = "q" THEN done = true doner = true ELSEIF c$ = "l" THEN lives = lives + 10 ELSEIF c$ = "d" THEN GOSUB died END IF RETURN '**************************************************************************** movement: FOR i = 1 TO delay NEXT i IF direction = up THEN IF board(prow - 1, pcol) <> wall1 AND board(prow - 1, pcol) <> grass THEN GOSUB check prow = prow - 1 IF vehic$ = "1" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), trucku, PSET ELSEIF vehic$ = "2" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), canowu, PSET ELSEIF vehic$ = "3" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), trashmu, PSET ELSEIF vehic$ = "bug" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), bug, PSET END IF END IF ELSEIF direction = down THEN IF board(prow + 1, pcol) <> wall1 AND board(prow + 1, pcol) <> grass THEN GOSUB check prow = prow + 1 IF vehic$ = "1" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), truckd, PSET ELSEIF vehic$ = "2" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), canowd, PSET ELSEIF vehic$ = "3" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), trashmd, PSET ELSEIF vehic$ = "bug" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), bug, PSET END IF END IF ELSEIF direction = lefty THEN IF board(prow, pcol - 1) <> wall1 AND board(prow, pcol - 1) <> grass THEN GOSUB check pcol = pcol - 1 IF vehic$ = "1" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), truckl, PSET ELSEIF vehic$ = "2" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), canowl, PSET ELSEIF vehic$ = "3" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), trashml, PSET ELSEIF vehic$ = "bug" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), bug, PSET END IF END IF ELSEIF direction = righty THEN IF board(prow, pcol + 1) <> wall1 AND board(prow, pcol + 1) <> grass THEN GOSUB check pcol = pcol + 1 IF vehic$ = "1" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), truckr, PSET ELSEIF vehic$ = "2" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), canowr, PSET ELSEIF vehic$ = "3" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), trashmr, PSET ELSEIF vehic$ = "bug" THEN PUT ((pcol - 1) * high, (prow - 1) * wide), bug, PSET END IF END IF END IF RETURN '**************************************************************************** check: IF board(prow, pcol) = banana THEN IF ww$ = "more points" THEN newscore = newscore + 30 ELSE newscore = newscore + 1 END IF PUT ((pcol - 1) * high, (prow - 1) * wide), road, PSET board(prow, pcol) = road numtrash = numtrash - 1 ELSEIF board(prow, pcol) = can THEN IF ww$ = "more points" THEN newscore = newscore + 30 ELSE newscore = newscore + 1 END IF PUT ((pcol - 1) * high, (prow - 1) * wide), road, PSET board(prow, pcol) = road numtrash = numtrash - 1 ELSEIF board(prow, pcol) = fish THEN IF ww$ = "more points" THEN newscore = newscore + 30 ELSE newscore = newscore + 1 END IF PUT ((pcol - 1) * high, (prow - 1) * wide), road, PSET board(prow, pcol) = road numtrash = numtrash - 1 ELSEIF board(prow, pcol) = road THEN PUT ((pcol - 1) * high, (prow - 1) * wide), road, PSET END IF RETURN '**************************************************************************** bmovement: FOR x = 1 TO 3 IF prow = brow(x) AND pcol = bcol(x) THEN IF ww$ = "invincible" OR level = 7 THEN GOSUB died2 ELSE GOSUB died END IF END IF NEXT x IF NOT done THEN FOR x = 1 TO 3 numways = 0 IF bdirection(x) = up THEN IF board(brow(x), bcol(x) - 1) <> wall1 AND board(brow(x), bcol(x) - 1) <> grass THEN numways = numways + 1 way(numways) = lefty END IF IF board(brow(x), bcol(x) + 1) <> wall1 AND board(brow(x), bcol(x) + 1) <> grass THEN numways = numways + 1 way(numways) = righty END IF IF board(brow(x) - 1, bcol(x)) <> wall1 AND board(brow(x) - 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = up END IF ELSEIF bdirection(x) = righty THEN IF board(brow(x) + 1, bcol(x)) <> wall1 AND board(brow(x) + 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = down END IF IF board(brow(x), bcol(x) + 1) <> wall1 AND board(brow(x), bcol(x) + 1) <> grass THEN numways = numways + 1 way(numways) = righty END IF IF board(brow(x) - 1, bcol(x)) <> wall1 AND board(brow(x) - 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = up END IF ELSEIF bdirection(x) = lefty THEN IF board(brow(x) + 1, bcol(x)) <> wall1 AND board(brow(x) + 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = down END IF IF board(brow(x), bcol(x) - 1) <> wall1 AND board(brow(x), bcol(x) - 1) <> grass THEN numways = numways + 1 way(numways) = lefty END IF IF board(brow(x) - 1, bcol(x)) <> wall1 AND board(brow(x) - 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = up END IF ELSEIF bdirection(x) = down THEN IF board(brow(x) + 1, bcol(x)) <> wall1 AND board(brow(x) + 1, bcol(x)) <> grass THEN numways = numways + 1 way(numways) = down END IF IF board(brow(x), bcol(x) + 1) <> wall1 AND board(brow(x), bcol(x) + 1) <> grass THEN numways = numways + 1 way(numways) = righty END IF IF board(brow(x), bcol(x) - 1) <> wall1 AND board(brow(x), bcol(x) - 1) <> grass THEN numways = numways + 1 way(numways) = lefty END IF END IF IF numways = 0 THEN IF bdirection(x) = up THEN bdirection(x) = down ELSEIF bdirection(x) = down THEN bdirection(x) = up ELSEIF bdirection(x) = lefty THEN bdirection(x) = righty ELSEIF bdirection(x) = righty THEN bdirection(x) = lefty END IF ELSEIF numways <> 0 THEN bway = INT(RND * numways) + 1 bdirection(x) = way(bway) IF bdirection(x) = lefty THEN GOSUB bcheck bcol(x) = bcol(x) - 1 PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), bug, PSET ELSEIF bdirection(x) = righty THEN GOSUB bcheck bcol(x) = bcol(x) + 1 PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), bug, PSET ELSEIF bdirection(x) = up THEN GOSUB bcheck brow(x) = brow(x) - 1 PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), bug, PSET ELSEIF bdirection(x) = down THEN GOSUB bcheck brow(x) = brow(x) + 1 PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), bug, PSET END IF END IF NEXT x FOR x = 1 TO 3 IF prow = brow(x) AND pcol = bcol(x) THEN IF ww$ = "invincible" OR level = 7 THEN GOSUB died2 ELSE GOSUB died END IF END IF NEXT x END IF RETURN '**************************************************************************** bcheck: IF board(brow(x), bcol(x)) = banana THEN PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), banana, PSET ELSEIF board(brow(x), bcol(x)) = can THEN PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), can, PSET ELSEIF board(brow(x), bcol(x)) = fish THEN PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), fish, PSET ELSEIF board(brow(x), bcol(x)) = road THEN PUT ((bcol(x) - 1) * wide, (brow(x) - 1) * high), road, PSET END IF RETURN '*************************************************************************** died2: RETURN '*************************************************************************** died: PUT ((pcol - 1) * high, (prow - 1) * wide), deadtman, PSET SOUND 300, 2 SLEEP 1 CLS LOCATE 15, 35 PRINT "You died!" SLEEP 1 lives = lives - 1 IF lives = 0 THEN done = true doner = true GOSUB entertop GOSUB seetopten ELSE GOSUB refresh END IF RETURN '**************************************************************************** entertop: GOSUB LOADTOPTEN CLS FOUND = false CURSCORE = 1 WHILE NOT FOUND AND CURSCORE <= 10 IF newscore > sScore(CURSCORE) THEN FOUND = true ELSE CURSCORE = CURSCORE + 1 END IF WEND IF NOT FOUND THEN LOCATE 11, 17 PRINT "Sorry your score did not make it on the top ten." SLEEP 2 ELSE 'FUTURE SPOT TO INPUT NAME LOCATE 11, 17 PRINT "Congratulations your score made it on the top ten!" SLEEP 2 FOR x = 9 TO CURSCORE STEP -1 sScore(x + 1) = sScore(x) player$(x + 1) = player$(x) NEXT x sScore(CURSCORE) = newscore player$(CURSCORE) = newname$ OPEN "\TOPTEN.HIS" FOR OUTPUT AS #1 FOR x = 1 TO 10 PRINT #1, player$(x) PRINT #1, sScore(x) NEXT x CLOSE #1 END IF RETURN '**************************************************************************** gameset: newscore = 0 lives = 15 speed = speed RETURN '**************************************************************************** refresh: board(12, 17) = empty prow = 12: pcol = 17 brow(1) = 2: bcol(1) = 2: bdirection(1) = righty brow(2) = 2: bcol(2) = 2: bdirection(2) = righty brow(3) = 2: bcol(3) = 2: bdirection(3) = down FOR row = 1 TO numrows FOR col = 1 TO numcols IF board(row, col) = banana THEN PUT ((col - 1) * wide, (row - 1) * high), banana, PSET ELSEIF board(row, col) = can THEN PUT ((col - 1) * wide, (row - 1) * high), can, PSET ELSEIF board(row, col) = fish THEN PUT ((col - 1) * wide, (row - 1) * high), fish, PSET ELSEIF board(row, col) = grass THEN PUT ((col - 1) * wide, (row - 1) * high), grass, PSET ELSEIF board(row, col) = wall1 THEN IF ww$ = "ORB" THEN PUT ((col - 1) * wide, (row - 1) * high), orb, PSET ELSEIF ww$ = "confusion" THEN trashs = INT(RND * 3) + 1 IF trashs = 1 THEN PUT ((col - 1) * wide, (row - 1) * high), banana, PSET board(brow, bcol) = banana ELSEIF trashs = 2 THEN PUT ((col - 1) * wide, (row - 1) * high), can, PSET board(brow, bcol) = can ELSEIF trashs = 3 THEN PUT ((col - 1) * wide, (row - 1) * high), fish, PSET board(brow, bcol) = fish END IF ELSE buildings = INT(RND * 3) + 1 IF buildings = 1 THEN PUT ((col - 1) * wide, (row - 1) * high), building1, PSET ELSEIF buildings = 2 THEN PUT ((col - 1) * wide, (row - 1) * high), building2, PSET ELSEIF buildings = 3 THEN PUT ((col - 1) * wide, (row - 1) * high), building3, PSET END IF END IF ELSEIF board(row, col) = empty THEN IF vehic$ = "1" THEN PUT ((col - 1) * wide, (row - 1) * high), trucku, PSET ELSEIF vehic$ = "2" THEN PUT ((col - 1) * wide, (row - 1) * high), canowu, PSET ELSEIF vehic$ = "3" THEN PUT ((col - 1) * wide, (row - 1) * high), trashmu, PSET ELSEIF vehic$ = "bug" THEN PUT ((col - 1) * wide, (row - 1) * high), bug, PSET END IF board(row, col) = road ELSEIF board(row, col) = road THEN PUT ((col - 1) * wide, (row - 1) * high), road, PSET END IF NEXT col NEXT row RETURN '**************************************************************************** options: DO CLS LOCATE 9, 28 PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" LOCATE 14, 28 PRINT "º º" LOCATE 14, 28 PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" COLOR blue LOCATE 10, 28 PRINT "º1.Speed º" LOCATE 11, 28 PRINT "º2.Go back º" LOCATE 12, 28 PRINT "º º" LOCATE 13, 50 PRINT "º" LOCATE 13, 28 INPUT "ºWhich one? ", opwhi IF opwhi = 1 THEN GOSUB spe ELSEIF opwhi = 2 THEN RETURN END IF LOOP UNTIL opwhi < 3 > 0 '**************************************************************************** spe: CLS PRINT "" PRINT "Fast Slow" PRINT "1 2 3 4 5 6 7 8 9 10..........100" PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ............." PRINT "Good for slow Good for fast" PRINT "computers(486) computers(pentium) " PRINT "" INPUT "What speed? ", speedr speed = speedr * 100 RETURN '**************************************************************************** levelpass: PLAY "t255l8o2gabo3do2p10bo3dp5" CLS LOCATE 15, 10 PRINT "Congratulations!! You passed the level! On to the next one!" SLEEP 2 RETURN '**************************************************************************** endin: CLS LOCATE 1, 20 INPUT "Put in (Atrus speaks) at the main menu.", endinent RETURN '**************************************************************************** topten: BACK = false WHILE NOT BACK COLOR blue CLS LOCATE 9, 28 PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" LOCATE 14, 28 PRINT "º º" LOCATE 14, 28 PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" COLOR blue LOCATE 10, 28 PRINT "º1.Clear Top Ten º" LOCATE 11, 28 PRINT "º2.See Topten º" LOCATE 12, 28 PRINT "º3.Go Back º" LOCATE 13, 50 PRINT "º" LOCATE 13, 28 INPUT "ºWHICH ONE: ", CHOICE$ IF CHOICE$ = "1" THEN GOSUB NEWTOPTEN ELSEIF CHOICE$ = "2" THEN GOSUB seetopten ELSEIF CHOICE$ = "3" THEN BACK = true END IF WEND CLS RETURN '******************************************************************************** NEWTOPTEN: CLS INPUT "Are you sure? ", yornt$ IF yornt$ = "y" OR yornt$ = "Y" THEN ELSE RETURN END IF CLS LOCATE 15, 1 OPEN "\TOPTEN.HIS" FOR OUTPUT AS #1 FOR x = 1 TO 10 PRINT #1, "......." PRINT #1, 0 NEXT x CLOSE #1 RETURN '******************************************************************************** seetopten: GOSUB LOADTOPTEN CLS FOR x = 1 TO 10 COLOR red LOCATE 2, 30 PRINT "Top Ten Citizens" COLOR blue LOCATE 3 + x, 24 PRINT player$(x) LOCATE 3 + x, 52 PRINT sScore(x) NEXT x LOCATE 28, 30 SLEEP RETURN '******************************************************************************** LOADTOPTEN: CLS LOCATE 15, 1 OPEN "\TOPTEN.HIS" FOR INPUT AS #1 FOR x = 1 TO 10 INPUT #1, player$(x) INPUT #1, sScore(x) NEXT x CLOSE #1 RETURN '******************************************************************************** atrus: PLAY "t255l8o2gabo3do2p10bo3dp5" ON PLAY(1) GOSUB music PLAY ON PLAY "MB" FOR x = 1 TO 480 colry = INT(RND * 10) + 1 LINE (1, x)-(640, x), colry NEXT x FOR z = 1 TO 5 FOR x = 1 TO 200 colory = INT(RND * 10) + 1 CIRCLE (300, 250), x, colory NEXT x NEXT z PUT (285, 235), truckr, PSET PRINT " No, he knows, he knows, the forbiden secret has been unleashed. I dare not " PRINT " think of what has happened to the ORB. Now he knows my weakspot. AAAAHHHHHH!!!" DO: LOOP UNTIL INKEY$ <> "" FOR x = 1 TO 600 LINE (1, x)-(640, x), red FOR y = 1 TO 50 NEXT y NEXT x PLAY OFF FOR x = 1 TO 640 colry = INT(RND * 10) + 1 LINE (x, 1)-(x, 480), colry NEXT x a$ = "C O D E S" b$ = "TM credits, TM gallery, Trash Man, Atrus speaks" c$ = "This is the password for levels 5-7: Atrus " d$ = "invincible, more points, options, confusion " e$ = "Enter this at the vehicle menu: bug " FOR w = 1 TO LEN(a$) SOUND 200, .1 LOCATE 2, 40 PRINT LEFT$(a$, w) FOR q = 1 TO 500 NEXT q NEXT w FOR w = 1 TO LEN(b$) SOUND 200, .1 LOCATE 4, 20 PRINT LEFT$(b$, w) FOR q = 1 TO 500 NEXT q NEXT w FOR w = 1 TO LEN(c$) SOUND 200, .1 LOCATE 7, 20 PRINT LEFT$(c$, w) FOR q = 1 TO 500 NEXT q NEXT w FOR w = 1 TO LEN(d$) SOUND 200, .1 LOCATE 5, 20 PRINT LEFT$(d$, w) FOR q = 1 TO 500 NEXT q NEXT w FOR w = 1 TO LEN(e$) SOUND 200, .1 LOCATE 8, 20 PRINT LEFT$(e$, w) FOR q = 1 TO 500 NEXT q NEXT w DO: LOOP UNTIL INKEY$ = "q" RETURN music: PLAY "MB MNT150L32O1DEFG" RETURN credits: PLAY "t255l8o2gabo3do2p10bo3dp5" ON PLAY(1) GOSUB music2 PLAY ON PLAY "MB" CLS FOR x = 1 TO 30 FOR y = 1 TO 600 NEXT y LOCATE 10, x PRINT " Producer-Programmer " NEXT x FOR x = 60 TO 34 STEP -1 FOR y = 1 TO 600 NEXT y LOCATE 11, x PRINT " Dan Egbert " NEXT x SLEEP 1 CLS FOR x = 1 TO 30 FOR y = 1 TO 600 NEXT y LOCATE 10, x PRINT " Superviser-Director " NEXT x FOR x = 60 TO 37 STEP -1 FOR y = 1 TO 600 NEXT y LOCATE 11, x PRINT " Mr King " NEXT x SLEEP 1 CLS LOCATE 10, 35 c$ = "Thanks for playing!!" FOR w = 1 TO LEN(c$) LOCATE 10, 30 PRINT LEFT$(c$, w) FOR q = 1 TO 900 NEXT q NEXT w PLAY OFF SLEEP 1 RETURN music2: PLAY "MB l4o4co3bo4l2cl5co3bo4l2cl4co3bo4l2cl4o3gcl3b-" RETURN gallery: CLS LOCATE 1, 20 PRINT "Welcome to the Trash Man Picture Gallery" SLEEP 2 PLAY "t255l8o2gabo3do2p10bo3dp5" ON PLAY(1) GOSUB music3 PLAY ON PLAY "MB" CLS PUT (285, 235), truckr, PSET SLEEP 1 PUT (285, 235), trucku, PSET SLEEP 1 PUT (285, 235), truckl, PSET SLEEP 1 PUT (285, 235), truckd, PSET SLEEP 1 PUT (285, 235), canowr, PSET SLEEP 1 PUT (285, 235), canowu, PSET SLEEP 1 PUT (285, 235), canowl, PSET SLEEP 1 PUT (285, 235), canowd, PSET SLEEP 1 PUT (285, 235), trashmr, PSET SLEEP 1 PUT (285, 235), trashmu, PSET SLEEP 1 PUT (285, 235), trashml, PSET SLEEP 1 PUT (285, 235), trashmd, PSET SLEEP 1 PUT (285, 235), fish, PSET SLEEP 1 PUT (285, 235), banana, PSET SLEEP 1 PUT (285, 235), grass, PSET SLEEP 1 PUT (285, 235), building1, PSET SLEEP 1 PUT (285, 235), building2, PSET SLEEP 1 PUT (285, 235), building3, PSET SLEEP 1 PUT (285, 235), can, PSET SLEEP 1 PUT (285, 235), orb, PSET SLEEP 1 PUT (285, 235), road, PSET SLEEP 1 PUT (285, 235), deadtman, PSET PLAY OFF SLEEP 1 RETURN music3: PLAY "MB l8o1dd+l8eo2co1eo2co1eo2l2l6cp5cdl8ecdeo1bo2dl2cp2" RETURN tmanf: PLAY "t255l8o2gabo3do2p10bo3dp5" PALETTE lgray, 65536 * 0 + 256 * 0 + 0 CLS FOR x = 1 TO 600 STEP 3 PUT (x, 95), truckr, PSET NEXT x CLS FOR x = 1 TO 75 PUT (50, 50), trashmr, PSET PUT (50, 50), trashmu, PSET PUT (50, 50), trashml, PSET PUT (50, 50), trashmd, PSET NEXT x FOR x = 600 TO 1 STEP -3 PUT (x, 50), truckl, PSET NEXT x SOUND 37, 2 CLS PUT (50, 50), deadtman, PSET SLEEP 1 DO CLS FOR x = 35 TO 445 STEP 3 PUT (1, x), truckd, PSET PUT (1, x - 35), trashmd, PSET NEXT x CLS FOR x = 35 TO 605 STEP 3 PUT (x, 445), truckr, PSET PUT (x - 35, 445), trashmr, PSET NEXT x CLS FOR x = 445 TO 35 STEP -3 PUT (605, x - 35), trucku, PSET PUT (605, x), trashmu, PSET NEXT x CLS FOR x = 605 TO 35 STEP -3 PUT (x - 35, 1), truckl, PSET PUT (x, 1), trashml, PSET NEXT x CLS LOOP UNTIL INKEY$ = "q" PALETTE lgray, 65536 * 31 + 256 * 31 + 31 RETURN