DECLARE SUB CenterComp (col!, row!, text$) DECLARE SUB CreatePictures () DECLARE SUB TreeLoad2 () DECLARE SUB Intro () DECLARE SUB CoinLoad () DECLARE SUB ScreenInit () DECLARE SUB Yay.YouHaveWon. () DECLARE SUB Setup () DECLARE SUB Instructions () DECLARE SUB DudeLoad () DECLARE SUB MainProgram () DECLARE SUB GroundLoad2 () DECLARE SUB GroundLoad () DECLARE SUB WaterLoad () DECLARE SUB Delay (duration!) DECLARE SUB CalcDelays () DECLARE SUB TreeLoad () DIM SHARED Tree(1 TO 117) DIM SHARED Tree2(1 TO 117) DIM SHARED Water(1 TO 117) DIM SHARED Ground(1 TO 117) DIM SHARED Ground2(1 TO 117) DIM SHARED Coin(1 TO 117) DIM SHARED Dude(1 TO 117) DIM SHARED DelayLoop, LevelLayout(34, -1 TO 15) DIM SHARED chops, fills, moves Setup x = 1: y = 1 CLS Intro SCREEN 9 INPUT "Do you want instructions"; instruct$ IF UCASE$(LEFT$(instruct$, 1)) = "Y" THEN CALL Instructions CLS SCREEN 13 ScreenInit MainProgram END SUB CalcDelays x = 0 starttime = TIMER DO x = x + 1 LOOP UNTIL TIMER - starttime >= 1 DelayLoop = x END SUB SUB CenterComp (col, row, text$) c = INT(40 - (LEN(text$) / 2)) LOCATE row, c Delaytime = .2 FOR loopy = 1 TO LEN(text$) IF INKEY$ <> "" THEN Delaytime = 0 fred = loopy COLOR 15 LOCATE row, c + fred: PRINT MID$(text$, fred, 1); Delay Delaytime SOUND 100, Delaytime / 2 COLOR col LOCATE row, c + fred: PRINT MID$(text$, fred, 1); NEXT END SUB SUB CoinLoad OPEN "COIN.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Coin CLS END SUB SUB CreatePictures OPEN "TREE.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "187, 188, 187, 187, 49, 187, 188, 187, 187" PRINT #1, "187, 187, 187, 188, 10, 187, 187, 187, 188" PRINT #1, "187, 187, 187, 10, 2, 188, 187, 187, 187" PRINT #1, "187, 187, 187, 10, 2, 2, 187, 187, 188" PRINT #1, "187, 187, 187, 10, 2, 2, 187, 188, 187" PRINT #1, "187, 187, 10, 2, 2, 193, 193, 187, 187" PRINT #1, "187, 187, 10, 2, 2, 193, 193, 187, 188" PRINT #1, "187, 187, 10, 2, 2, 193, 193, 187, 187" PRINT #1, "188, 187, 187, 2, 2, 2, 187, 187, 188" PRINT #1, "187, 187, 188, 2, 193, 193, 187, 187, 188" PRINT #1, "187, 187, 188, 187, 108, 185, 187, 187, 187" PRINT #1, "187, 188, 187, 187, 108, 185, 188, 187, 187" PRINT #1, "187, 188, 187, 187, 108, 185, 188, 187, 187" END IF CLOSE OPEN "TREE2.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "187, 188, 187, 187, 49, 187, 188, 187, 187" PRINT #1, "187, 187, 187, 188, 10, 187, 187, 187, 188" PRINT #1, "187, 187, 187, 10, 2, 188, 187, 187, 187" PRINT #1, "187, 187, 187, 10, 193, 2, 187, 187, 188" PRINT #1, "187, 187, 187, 10, 2, 10, 187, 188, 187" PRINT #1, "187, 187, 2, 2, 2, 193, 193, 187, 187" PRINT #1, "187, 187, 2, 2, 193, 2, 193, 187, 188" PRINT #1, "187, 187, 10, 2, 2, 2, 193, 187, 187" PRINT #1, "188, 187, 187, 193, 2, 2, 187, 187, 188" PRINT #1, "187, 187, 188, 2, 193, 193, 187, 187, 188" PRINT #1, "187, 187, 188, 187, 185, 185, 187, 187, 187" PRINT #1, "187, 188, 187, 187, 185, 185, 188, 187, 187" PRINT #1, "187, 188, 187, 187, 185, 185, 188, 187, 187" END IF CLOSE OPEN "WATER.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "56, 56, 56, 56, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 52, 56" PRINT #1, "56, 53, 56, 56, 56, 55, 53, 56, 54" PRINT #1, "52, 56, 52, 54, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 52, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 56, 56" PRINT #1, "56, 56, 56, 56, 56, 56, 56, 52, 56" PRINT #1, "56, 53, 56, 56, 56, 55, 53, 56, 54" PRINT #1, "52, 56, 52, 54, 56, 56, 56, 56, 56" PRINT #1, "52, 56, 52, 54, 56, 56, 56, 56, 56" END IF CLOSE OPEN "GROUND.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "188, 187, 188, 188, 187, 187, 188, 187, 188" PRINT #1, "187, 187, 188, 187, 188, 188, 188, 187, 187" PRINT #1, "188, 187, 188, 187, 188, 188, 187, 188, 187" PRINT #1, "188, 188, 187, 187, 187, 187, 187, 188, 188" PRINT #1, "188, 188, 187, 188, 188, 188, 187, 188, 188" PRINT #1, "188, 187, 187, 187, 188, 187, 187, 188, 188" PRINT #1, "188, 188, 187, 188, 188, 188, 188, 188, 187" PRINT #1, "188, 188, 187, 188, 188, 188, 188, 188, 188" PRINT #1, "188, 188, 188, 188, 188, 187, 188, 188, 188" PRINT #1, "188, 187, 188, 188, 187, 187, 188, 188, 188" PRINT #1, "188, 188, 188, 188, 188, 188, 187, 187, 188" PRINT #1, "188, 188, 188, 187, 187, 188, 188, 188, 188" PRINT #1, "188, 188, 188, 187, 187, 188, 188, 188, 188" END IF CLOSE OPEN "GROUND2.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "188, 187, 188, 187, 188, 187, 187, 187, 187" PRINT #1, "187, 187, 188, 187, 188, 188, 188, 187, 187" PRINT #1, "187, 187, 188, 187, 188, 188, 187, 187, 188" PRINT #1, "187, 188, 187, 187, 188, 187, 187, 187, 188" PRINT #1, "188, 188, 188, 188, 187, 188, 187, 187, 188" PRINT #1, "188, 187, 187, 187, 188, 187, 188, 187, 187" PRINT #1, "188, 188, 187, 187, 188, 187, 188, 187, 188" PRINT #1, "188, 188, 187, 188, 188, 187, 187, 188, 188" PRINT #1, "188, 188, 187, 188, 187, 187, 188, 188, 188" PRINT #1, "187, 187, 188, 188, 188, 188, 188, 188, 188" PRINT #1, "187, 187, 188, 187, 187, 188, 188, 187, 188" PRINT #1, "187, 187, 188, 188, 187, 188, 187, 188, 187" PRINT #1, "187, 187, 188, 188, 187, 188, 187, 188, 187" END IF CLOSE OPEN "COIN.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, "188, 187, 188, 187, 188, 187, 187, 187, 187" PRINT #1, "187, 187, 188, 187, 188, 188, 188, 187, 187" PRINT #1, "187, 187, 188, 187, 188, 188, 187, 187, 188" PRINT #1, "187, 188, 187, 187, 188, 187, 187, 187, 188" PRINT #1, "188, 44, 44, 188, 187, 188, 187, 188, 187" PRINT #1, "115, 14, 14, 44, 44, 187, 188, 187, 188" PRINT #1, "188, 44, 44, 14, 14, 44, 44, 187, 187" PRINT #1, "115, 188, 188, 44, 44, 14, 14, 115, 188" PRINT #1, "188, 115, 115, 188, 188, 44, 14, 115, 187" PRINT #1, "188, 187, 187, 115, 115, 188, 188, 44, 188" PRINT #1, "187, 188, 188, 187, 188, 115, 115, 187, 188" PRINT #1, "187, 187, 188, 188, 187, 188, 187, 188, 187" PRINT #1, "187, 187, 187, 188, 187, 187, 188, 187, 187" END IF CLOSE OPEN "DUDE.DAT" FOR APPEND AS #1 IF LOF(1) = 0 THEN PRINT #1, ", , , , , , , ," PRINT #1, "19, 19, , , , , , 19, 19" PRINT #1, ", , , , , , , ," PRINT #1, "19, 19, , , , , , 19, 19" PRINT #1, "19, 19, , , , , , 19, 19" PRINT #1, ", , , , , , , ," PRINT #1, ", , , 19, 19, 19, , ," PRINT #1, ", , , 19, 19, 19, , ," PRINT #1, ", , , , , , , ," PRINT #1, "19, , , , , , , , 19" PRINT #1, "19, , , , , , , , 19" PRINT #1, ", 19, , , , , , 19," PRINT #1, ", 19, , , , , , 19," PRINT #1, ", 19, 19, 19, 19, 19, 19, 19," END IF CLOSE END SUB SUB Delay (duration) FOR i = 1 TO DelayLoop * duration NEXT END SUB SUB DudeLoad OPEN "DUDE.DAT" FOR INPUT AS #1 FOR y = 1 TO 9 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Dude CLS END SUB SUB GroundLoad OPEN "GROUND.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Ground CLS END SUB SUB GroundLoad2 OPEN "GROUND2.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Ground2 CLS END SUB SUB Instructions CLS PRINT " The object of the game is to get" PRINT "to the little gold coin. You have" PRINT "to chop down the trees in the way" PRINT "by pressing 'c' and occasionally" PRINT "you will have to fill in water by" PRINT "pressing 'f'. You have 8 chops" PRINT "and 3 fills to do it with." SLEEP END SUB SUB Intro CLS SCREEN 9 CenterComp 2, 5, "Leprechaun Lumberjack" CenterComp 2, 6, "The Woodcutter who found the elf" CenterComp 7, 7, "(It happens to be you)" CenterComp 9, 11, "A Happy Game By" CenterComp 9, 12, ">/\" CenterComp 11, 13, "(Or Damon Amyx)" LOCATE 23: COLOR 7: PRINT "email: ramyx@ix.netcom.com" WHILE INKEY$ = "": WEND SCREEN 13 END SUB SUB MainProgram DudeX = 1 DudeY = 1 chops = 8 fills = 3 moves = 0 PUT (9, 13), Ground2, PSET: LevelLayout(1, 1) = 4 PUT (9, 13), Dude, XOR DO IF LevelLayout(DudeX, DudeY) = 5 THEN CALL Yay.YouHaveWon. WHILE in$ = "" in$ = INKEY$ WEND moves = moves + 1 LOCATE 23: PRINT "Chops left:"; chops; " Fills left:"; fills IF DudeY <= -1 THEN DudeY = 0 IF DudeX <= -1 THEN DudeX = 0 PUT (DudeX * 9, DudeY * 13), Dude, XOR 'erase the dude IF in$ = CHR$(0) + "K" THEN move = 1: : dir = 4: DudeX = DudeX - 1 IF DudeX = -1 THEN DudeX = 0 IF in$ = CHR$(0) + "M" THEN move = 2: dir = 6: DudeX = DudeX + 1 IF DudeX = 35 THEN DudeX = 34 IF in$ = CHR$(0) + "P" THEN move = 3: dir = 2: DudeY = DudeY + 1 IF DudeY <= -1 THEN DudeY = 0 IF in$ = CHR$(0) + "H" THEN move = 4: dir = 8: DudeY = DudeY - 1 IF DudeY = 15 THEN DudeY = 14 in$ = UCASE$(in$) IF in$ = "C" OR in$ = "F" THEN FOR i = 3000 TO 60 STEP -60: SOUND i, .5: NEXT IF in$ = "C" THEN chops = chops - 1: IF chops = -1 THEN chops = 0: GOTO la IF in$ = "F" THEN fills = fills - 1: IF fills = -1 THEN fills = 0: GOTO la IF DudeY * 13 + 13 = 195 THEN GOTO la SELECT CASE dir CASE 2 IF LevelLayout(DudeX - 1, DudeY) = 2 AND in$ <> "F" THEN GOTO la PUT (DudeX * 9, DudeY * 13 + 13), Ground, PSET: LevelLayout(DudeX, DudeY + 1) = 3 CASE 4 IF LevelLayout(DudeX, DudeY + 1) = 2 AND in$ <> "F" THEN GOTO la PUT (DudeX * 9 - 9, DudeY * 13), Ground2, PSET: LevelLayout(DudeX - 1, DudeY) = 4 CASE 6 IF LevelLayout(DudeX + 1, DudeY) = 2 AND in$ <> "F" THEN GOTO la PUT (DudeX * 9 + 9, DudeY * 13), Ground, PSET: LevelLayout(DudeX + 1, DudeY) = 3 CASE 8 IF LevelLayout(DudeX, DudeY - 1) = 2 AND in$ <> "F" THEN GOTO la PUT (DudeX * 9, DudeY * 13 - 13), Ground2, PSET: LevelLayout(DudeX, DudeY - 1) = 4 END SELECT END IF la: in$ = "" IF LevelLayout(DudeX, DudeY) <> 3 AND LevelLayout(DudeX, DudeY) <> 4 AND LevelLayout(DudeX, DudeY) <> 5 THEN SELECT CASE move CASE 1 DudeX = DudeX + 1 CASE 2 DudeX = DudeX - 1 CASE 3 DudeY = DudeY - 1 CASE 4 DudeY = DudeY + 1 END SELECT END IF PUT (DudeX * 9, DudeY * 13), Dude, XOR 'put the dude back LOOP END SUB SUB ScreenInit DO i = INT(4 * RND) + 1 IF x > 50 AND y > 60 AND y < 140 AND x < 200 AND i <> 2 THEN i = INT(4 * RND) + 1 IF i <> 2 THEN i = INT(4 * RND) + 1 IF i <> 2 THEN i = INT(4 * RND) + 1 IF i <> 2 THEN i = INT(4 * RND) + 1 IF i <> 2 THEN i = INT(4 * RND) + 1 ELSE DO i = INT(5 * RND) LOOP UNTIL i <> 2 END IF IF x = 1 AND y = 1 THEN i = 3 LevelLayout(x / 9, y / 13) = i SELECT CASE i CASE 0 PUT (x, y), Tree2, PSET CASE 1 PUT (x, y), Tree, PSET CASE 2 PUT (x, y), Water, PSET CASE 3 PUT (x, y), Ground, PSET CASE 4 PUT (x, y), Ground2, PSET END SELECT x = x + 9 IF x >= 311 THEN x = 1 y = y + 13: IF y >= 184 THEN EXIT DO END IF LOOP x = INT(19 * RND) + 16 y = INT(6 * RND) + 9 LevelLayout(x, y) = 5 'the one and only COIN!!! PUT (x * 9, y * 13), Coin, PSET END SUB SUB Setup RANDOMIZE TIMER SCREEN 13 CalcDelays CreatePictures TreeLoad TreeLoad2 WaterLoad GroundLoad GroundLoad2 CoinLoad DudeLoad END SUB SUB TreeLoad OPEN "TREE.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Tree CLS END SUB SUB TreeLoad2 OPEN "TREE2.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Tree2 CLS END SUB SUB WaterLoad OPEN "WATER.DAT" FOR INPUT AS #1 FOR y = 1 TO 13 FOR x = 1 TO 9 INPUT #1, col PSET (x, y), col NEXT NEXT CLOSE GET (1, 1)-(9, 13), Water CLS END SUB SUB Yay.YouHaveWon. PLAY "t150c7..mlc8e5msg5>c2" CLS PRINT "Cheers and Huzzah! You have" PRINT "BEATEN this GAMELIKE thingie" PRINT "that is CORNY. Congratulate" PRINT "yourself." PRINT PRINT "Chops left:"; chops PRINT "Fills left:"; fills PRINT "Moves:"; moves END END SUB