Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE SUB checkLoc ()
- DECLARE SUB drawTile (x, y)
- DECLARE SUB drawWizard ()
- DECLARE SUB drawMap ()
- DECLARE SUB generateMap ()
- DECLARE SUB drawInterface ()
- SCREEN 7
- CLS
- RANDOMIZE TIMER
- DIM SHARED map(0 TO 624)
- DIM SHARED TERRAINDOTS
- TERRAINDOTS = 10
- DIM SHARED terrainX(1 TO TERRAINDOTS)
- DIM SHARED terrainY(1 TO TERRAINDOTS)
- DIM SHARED WATER
- DIM SHARED GRASS
- WATER = 0
- GRASS = 1
- DIM SHARED wizardX
- DIM SHARED wizardY
- DIM SHARED initialDraw
- DIM SHARED validLoc
- validLoc = 1
- CALL generateMap
- CALL drawInterface
- CALL drawMap
- CALL drawWizard
- getKey:
- A$ = INKEY$
- IF A$ = "" THEN GOTO getKey
- IF A$ = "q" THEN
- COLOR 8
- END
- END IF
- moveDist = 2
- IF A$ = "a" THEN
- wizardX = wizardX - moveDist
- IF wizardX < 0 THEN wizardX = 0
- CALL checkLoc
- IF validLoc = 0 THEN wizardX = wizardX + moveDist
- END IF
- IF A$ = "d" THEN
- wizardX = wizardX + moveDist
- IF wizardX > 191 THEN wizardX = 191
- CALL checkLoc
- IF validLoc = 0 THEN wizardX = wizardX - moveDist
- END IF
- IF A$ = "w" THEN
- wizardY = wizardY - moveDist
- IF wizardY < 0 THEN wizardY = 0
- CALL checkLoc
- IF validLoc = 0 THEN wizardY = wizardY + moveDist
- END IF
- IF A$ = "s" THEN
- wizardY = wizardY + moveDist
- IF wizardY > 191 THEN wizardY = 191
- CALL checkLoc
- IF validLoc = 0 THEN wizardY = wizardY - moveDist
- END IF
- IF wizardX > 183 AND wizardY < 16 THEN
- COLOR 15
- LOCATE 7, 6
- PRINT " "
- LOCATE 8, 6
- PRINT " The wizard made it "
- LOCATE 9, 6
- PRINT " "
- LOCATE 10, 6
- PRINT " to the enchanted forest!!! "
- LOCATE 11, 6
- PRINT " "
- FOR i = 1 TO 7
- BEEP
- NEXT i
- COLOR 8
- WHILE INKEY$ <> "q"
- WEND
- END
- END IF
- CALL drawInterface
- CALL drawMap
- 'FOR i = 1 TO 4
- CALL drawWizard
- 'NEXT i
- GOTO getKey
- SUB checkLoc
- 'wizleft = wizardX - 2
- 'wizRight = wizardX + 2
- 'wizTop = wizardY - 2
- 'wizBottom = wizardY + 2
- xTile = INT((wizardX + 4) / 8)
- yTile = INT((wizardY + 4) / 8)
- IF map(xTile + 25 * yTile) = WATER THEN
- validLoc = 0
- ELSE
- validLoc = 1
- END IF
- END SUB
- SUB drawInterface
- LOCATE 1, 27
- COLOR 14
- PRINT "The Enchanted"
- LOCATE 2, 27
- COLOR 14
- PRINT " Forest"
- LOCATE 8, 27
- COLOR 12
- PRINT "[stats]"
- COLOR 8
- LINE (204, 0)-(204, 200), 6
- LINE (204, 20)-(320, 20), 6
- END SUB
- SUB drawMap
- xTile = INT((wizardX + 4) / 8)
- yTile = INT((wizardY + 4) / 8)
- FOR x = -4 TO 4
- FOR y = -4 TO 4
- IF y = -4 AND (x = -4 OR x = -3 OR x = 3 OR x = 4) THEN GOTO skip
- IF y = -3 AND (x = -4 OR x = 4) THEN GOTO skip
- IF y = 3 AND (x = -4 OR x = 4) THEN GOTO skip
- IF y = 4 AND (x = -4 OR x = -3 OR x = 3 OR x = 4) THEN GOTO skip
- CALL drawTile(xTile + x, yTile + y)
- skip:
- NEXT y
- NEXT x
- END SUB
- SUB drawTile (x, y)
- IF x < 0 OR x > 24 OR y < 0 OR y > 24 THEN EXIT SUB
- n = y * 25 + x
- px = x * 8
- py = y * 8
- backColor = 0
- foreColor = 0
- numDots = 0
- altForeColor = 0
- numAltDots = 0
- SELECT CASE map(n)
- CASE GRASS
- backColor = 2
- foreColor = 6
- CASE WATER
- backColor = 1
- foreColor = 9
- END SELECT
- LINE (px, py)-(px + 7, py + 7), backColor, BF
- FOR i = 1 TO TERRAINDOTS
- PSET (terrainX(i) + px, terrainY(i) + py), foreColor
- NEXT i
- END SUB
- SUB drawWizard
- x = wizardX
- y = wizardY
- 'hat
- PSET (x, y - 12), 5
- DRAW "f1 nu4 r1 nu7 r1 nu10 r1 nu7 r1 nu4 e1"
- 'star
- PSET (x + 1, y - 14), 14
- DRAW "r2 bh1 d2"
- 'hair and beard
- PSET (x + 1, y - 10), 15
- DRAW "d4 l1 d1 be5 d4 l3 d1 r1 nr1 d1 nl1 d3"
- 'moustache
- PSET (x + 2, y - 6), 7
- DRAW "u2 r2 d2"
- 'eyes
- PSET (x + 2, y - 9), 11
- PSET (x + 4, y - 9), 11
- 'face
- PSET (x + 2, y - 10), 12
- DRAW "f1 e1 l1"
- PSET (x + 3, y - 7), 12
- 'robe
- PSET (x, y - 4), 5
- DRAW "nd8 be1 d11 bf1 nu10 br1 nu7 br1 u11 be1 d12 be1 nu12 be1 bu1 u8"
- 'boots
- PSET (x + 1, y + 7), 0
- DRAW "u1"
- PSET (x + 6, y + 7), 0
- DRAW "u1"
- 'moon and stars
- PSET (x + 6, y - 1), 14
- DRAW "d2 l1 d1 l2"
- PSET (x, y), 14
- DRAW "r2 bh1 d2"
- PSET (x + 2, y + 5), 14
- DRAW "r2 bh1 d2"
- END SUB
- SUB generateMap
- FOR i = 0 TO 624
- map(i) = INT(RND * 4)
- IF map(i) > 0 THEN
- map(i) = GRASS
- ELSE
- map(i) = WATER
- END IF
- NEXT i
- 'place wizard
- map(525 + 0) = GRASS
- map(525 + 1) = GRASS
- map(550 + 0) = GRASS
- map(550 + 1) = GRASS
- map(550 + 2) = GRASS
- map(575 + 0) = GRASS
- map(575 + 1) = GRASS
- map(575 + 2) = GRASS
- map(575 + 3) = GRASS
- map(600 + 0) = GRASS
- map(600 + 1) = GRASS
- map(600 + 2) = GRASS
- map(600 + 3) = GRASS
- wizardX = 4
- wizardY = 188
- 'terrain pattern
- FOR i = 1 TO TERRAINDOTS
- terrainX(i) = INT(RND * 8)
- terrainY(i) = INT(RND * 8)
- NEXT i
- END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement