Posted: 4th Apr 2004 3:51
Here it is, just use the arrows to move, you're the red thing and green things are monsters.

+ Code Snippet
dim pp(1,1)
dim grid(22,8)
dim monsters(3,3)
dim monstername$(3)
dim monsterpos(1,1)

randomize timer()

`rat
monstername$(2) = "Rat"
monsters(2,1) = 1
monsters(2,2) = 3
monsters(2,3) = 10

`giant rat
monstername$(3) = "Giant Rat"
monsters(3,1) = 2
monsters(3,2) = 6
monsters(3,3) = 20

sync on

for y = 0 to 8
   for x = 0 to 22

   read a

   if a = 1
      ink rgb(255,255,255),0
      box x*25,y*25,(x+1)*25,(y+1)*25
   endif

   if a  > 1
      ink rgb(0,255,0),0
      box x*25,y*25,(x+1)*25,(y+1)*25
   endif

   grid(x,y) = a

   if a > 1
      monsterpos(1,0) = x
      monsterpos(1,1) = y
   endif

   next x
next y

sync

x=25
y=25
hp = 20
ink rgb(255,0,0),0
push = 0

start:
do

   box x,y,x+25,y+25

   gosub movement

   if scancode()=0 then push = 0

   pp(1,0) = x
   pp(1,1) = y

`   gridx = gridvalue(mousex() )
`   gridy = gridvalue(mousey() )
`   num = grid(gridx, gridy )
`   mname$ = monstername$(num )

   text 300,10,line1$

   sync
loop

room1:
data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
data 1,0,1,0,1,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,0,1,1
data 1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
data 1,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,1
data 1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,3,0,0,0,0,1,0,1
data 1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1
data 1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1
data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

movement:
   if leftkey()=1 and push = 0
      if grid(gridvalue(x)-1,gridvalue(y)) = 0
         ink 0,0
         box x,y,x+25,y+25
         x = x - 25
         ink rgb(255,0,0),0
         push = 1
      endif
      if grid(gridvalue(x)-1,gridvalue(y)) > 1
         ink 0,0
         x = x - 25
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         push = 1
         mlv = monsters(grid(gridvalue(x), gridvalue(y)), 1)
         mhp = monsters(grid(gridvalue(x), gridvalue(y)), 2)
         mxp = monsters(grid(gridvalue(x), gridvalue(y)), 3)
         mn$ = monstername$(grid(gridvalue(x), gridvalue(y)))
         monstercombat(hp,mlv,mhp,mxp,mn$)
      endif
   endif

   if rightkey()=1 and push = 0
      if grid(gridvalue(x)+1,gridvalue(y)) = 0
         ink 0,0
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         x = x + 25
         push = 1
      endif
      if grid(gridvalue(x)+1,gridvalue(y)) > 1
         ink 0,0
         x = x + 25
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         push = 1
         mlv = monsters(grid(gridvalue(x), gridvalue(y)), 1)
         mhp = monsters(grid(gridvalue(x), gridvalue(y)), 2)
         mxp = monsters(grid(gridvalue(x), gridvalue(y)), 3)
         mn$ = monstername$(grid(gridvalue(x), gridvalue(y)))
         monstercombat(hp,mlv,mhp,mxp,mn$)
      endif
   endif

   if downkey()=1 and push = 0
      if grid(gridvalue(x),gridvalue(y)+1) = 0
         ink 0,0
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         y = y + 25
         push = 1
      endif
      if grid(gridvalue(x),gridvalue(y)+1) > 1
         ink 0,0
         y = y + 25
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         push = 1
         mlv = monsters(grid(gridvalue(x), gridvalue(y)), 1)
         mhp = monsters(grid(gridvalue(x), gridvalue(y)), 2)
         mxp = monsters(grid(gridvalue(x), gridvalue(y)), 3)
         mn$ = monstername$(grid(gridvalue(x), gridvalue(y)))
         monstercombat(hp,mlv,mhp,mxp,mn$)
      endif
   endif

   if upkey()=1 and push = 0
      if grid(gridvalue(x),gridvalue(y)-1) = 0
         ink 0,0
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         y = y - 25
         push = 1
      endif
      if grid(gridvalue(x),gridvalue(y)-1) > 1
         ink 0,0
         y = y - 25
         box x,y,x+25,y+25
         ink rgb(255,0,0),0
         push = 1
         mlv = monsters(grid(gridvalue(x), gridvalue(y)), 1)
         mhp = monsters(grid(gridvalue(x), gridvalue(y)), 2)
         mxp = monsters(grid(gridvalue(x), gridvalue(y)), 3)
         mn$ = monstername$(grid(gridvalue(x), gridvalue(y)))
         monstercombat(hp,mlv,mhp,mxp,mn$)
      endif
   endif
return

goto start

function monstercombat(hp,mlv,mhp,mxp,mname$)
   aord = 0
   defend = 0
   mdefend = 0
   do
   ink rgb(255,255,255),0
   text 10,210,"The " + mname$ + " attacks you!"
   text 10,225,"Your Turn"
   set cursor 10,240

   input "Attack(1) or Defend(2)?",aord
   if aord  = 1
      text 10,255,"You punch the " + mname$ + "."
      if rnd(1) = 0
         text 10,270,"You miss."
      else
         r = rnd(4)+mlv
         text 10,270,"You deal " + str$(r) + " damage to the " + mname$ + "."
         mhp = mhp - r
         if mdefend = 1
            r2 = rnd(r-1)+1
            text 10,285,"But, it defends itself against " + str$(r2) + " damage."
            mhp = mhp + r2
         endif
         text 10,300,"The " + mname$ + " has " + str$(mhp) + " health remaining."
      endif
   endif

   if aord = 2
      ink rgb(255,255,255),0
      defend = 1
      text 10,255,"You defend yourself."
      text 10,270,"You also manage to deal 1 damage to the rat."
      mhp = mhp - 1
      text 10,285,"The rat now has " + str$(mhp) + " health."
   endif

   if mhp = 0 or mhp < 0
      text 10,400,"You have defeated the " + mname$ + "."
      text 10,415,"Congratulations"
      text 10,430,"Press any key to continue"
      deletemonster(1)
      suspend for key
      ink 0,0
      box 5,205,639,479
      exitfunction
   endif

   mdefend = 0

   wait 500

   text 10,315,mname$ +"'s Turn"

   if mhp < monsters(2,3)/2
      mdefend = 1
      text 10,330,"The " + mname$ + " deals 1 damage to you. You have " + str$(hp-1) + " health."
      hp = hp - 1
      text 10,345,"You are not able to defend"
      text 10,360,"It also defends itself"
   else
      if rnd(1) = 1
         r = rnd(monsters(2,1))+1
         text 10,330,"The " + mname$ + " deals " + str$(r) + " damage to you."
         hp = hp - r
         if defend = 1
            r2 = rnd(r-1)+1
            text 10,345,"But, you defend yourself against " + str$(r2) + " damage."
            hp = hp + r2
         endif
         text 10,360,"You have " + str$(hp) + " heath remaining"
      else
         text 10,330,"The " + mname$ + " misses you."
      endif
   endif

   if hp = 0 or hp < 0
      text 10,400,"You have been defeated by the " + name$ + "."
      text 10,415,"You Lose"
      text 10,430,"Press any key to continue"
      suspend for key
      end
   endif

   suspend for key
   sync
   ink 0,0
   box 5,205,639,479
   defend = 0
   loop
endfunction

function gridvalue(num)
   num = num / 25
endfunction num

function deletemonster(num)
   x = monsterpos(num,0)
   y = monsterpos(num,1)
   x = x * 25
   y = y * 25
   ink 0,0
   box x,y,x+25,y+25
   ink rgb(255,0,0),0
   grid(monsterpos(num,0),monsterpos(num,1)) = 0
endfunction