Here it is, just use the arrows to move, you're the red thing and green things are monsters.
+ Code Snippetdim 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