Posted: Tue Jul 22, 2008 11:39 am
Keep READ. Restore just goes back (or forward if you want).
Discuss QBasic, Freebasic, QB64 and more
http://petesqbsite.com/phpBB3/
Code: Select all
'do stuff with an x
FOR i% = 1 TO 25
READ p%
'blah blah blah
NEXT i%
'do stuff with an O
FOR i% = 1 TO 25
READ p%
'blah blah blah
NEXT i%
'an x
DATA 1, 0, 0, 0, 1
DATA 0, 1, 0, 1, 0
DATA 0, 0, 1, 0, 0
DATA 0, 1, 0, 1, 0
DATA 1, 0, 0, 0, 1
'an o
DATA 0, 1, 1, 1, 0
DATA 1, 0, 0, 0, 1
DATA 1, 0, 0, 0, 1
DATA 1, 0, 0, 0, 1
DATA 0, 1, 1, 1, 0
Code: Select all
'do stuff with an x
FOR i% = 1 TO 25
READ p%
'blah blah blah
NEXT i%
'do stuff with an O
FOR i% = 1 TO 25
READ p%
'blah blah blah
next i%
'tell the computer to go back to labelX
RESTORE labelX
'do stuff with an x
FOR i% = 1 TO 25
READ p%
'blah blah blah
NEXT i%
'an x
labelX:
DATA 1, 0, 0, 0, 1
DATA 0, 1, 0, 1, 0
DATA 0, 0, 1, 0, 0
DATA 0, 1, 0, 1, 0
DATA 1, 0, 0, 0, 1
'an o
DATA 0, 1, 1, 1, 0
DATA 1, 0, 0, 0, 1
DATA 1, 0, 0, 0, 1
DATA 1, 0, 0, 0, 1
DATA 0, 1, 1, 1, 0
Code: Select all
DIM grass(10, 10), path(10, 10), water(10, 10), tent(10, 10), scout(10, 10), scoutmask(10, 10)
SCREEN 13
scoutx = 5
scouty = 1
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 1 THEN PSET (x, y), 10
IF clr = 0 THEN PSET (x, y), 2
NEXT
NEXT
GET (1, 1)-(10, 10), grass
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 6
IF clr = 1 THEN PSET (x, y), 14
NEXT
NEXT
GET (1, 1)-(10, 10), path
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 3
IF clr = 1 THEN PSET (x, y), 11
NEXT
NEXT
GET (1, 1)-(10, 10), water
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 6
IF clr = 1 THEN PSET (x, y), 8
IF clr = 2 THEN PSET (x, y), 0
NEXT
NEXT
GET (1, 1)-(10, 10), tent
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 0
IF clr = 1 THEN PSET (x, y), 2
IF clr = 2 THEN PSET (x, y), 8
IF clr = 3 THEN PSET (x, y), 14
IF clr = 4 THEN PSET (x, y), 4
NEXT
NEXT
GET (1, 1)-(10, 10), scout
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 255
IF clr = 1 THEN PSET (x, y), 2
IF clr = 2 THEN PSET (x, y), 8
IF clr = 3 THEN PSET (x, y), 14
IF clr = 4 THEN PSET (x, y), 4
NEXT
NEXT
GET (1, 1)-(10, 10), scoutmask
CLS
FOR y = 1 TO 15
FOR x = 1 TO 30
READ tilenumber
IF tilenumber = 1 THEN PUT (x * 10, y * 10), grass, PSET
IF tilenumber = 2 THEN PUT (x * 10, y * 10), path, PSET
IF tilenumber = 3 THEN PUT (x * 10, y * 10), water, PSET
IF tilenumber = 4 THEN PUT (x * 10, y * 10), tent, PSET
NEXT
NEXT
DO
p$ = INKEY$
oldscoutx = scoutx
oldscouty = scouty
PUT (oldscoutx * 10, oldscouty * 10), scoutmask, AND
PUT (oldscoutx * 10, oldscouty * 10), scout, OR
IF p$ <> "" THEN
WAIT &H3DA, 8
IF p$ = "w" AND oldscouty > 1 THEN scouty = oldscouty - 1
IF p$ = "s" AND oldscouty < 15 THEN scouty = oldscouty + 1
IF p$ = "a" AND oldscoutx > 1 THEN scoutx = oldscoutx - 1
IF p$ = "d" AND oldscoutx < 30 THEN scoutx = oldscoutx + 1
CLS
RESTORE tilenumber
FOR y = 1 TO 15
FOR x = 1 TO 30
IF tilenumber = 1 THEN PUT (x * 10, y * 10), grass, PSET
IF tilenumber = 2 THEN PUT (x * 10, y * 10), path, PSET
IF tilenumber = 3 THEN PUT (x * 10, y * 10), water, PSET
IF tilenumber = 4 THEN PUT (x * 10, y * 10), tent, PSET
NEXT
NEXT
END IF
LOOP UNTIL p$ = CHR$(27)
grass:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0
path:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
water:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
tent:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,0,0,0
DATA 0,0,0,1,2,2,1,0,0,0
DATA 0,0,1,1,2,2,1,1,0,0
DATA 0,0,1,1,2,2,1,1,0,0
DATA 0,1,1,1,2,2,1,1,1,0
DATA 0,1,1,2,2,2,2,1,1,0
DATA 1,1,1,2,2,2,2,1,1,1
DATA 1,1,1,2,2,2,2,1,1,1
scout:
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,0,0
DATA 0,0,0,3,3,3,3,0,0,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,3,2,2,2,2,2,2,3,0
DATA 0,0,2,2,2,2,2,2,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
scoutmask:
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,0,0
DATA 0,0,0,3,3,3,3,0,0,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,3,2,2,2,2,2,2,3,0
DATA 0,0,2,2,2,2,2,2,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
tilenumber:
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,4,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,4,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
I think I'm going through pointer withdraw. I'll take any ptr.burger2227 wrote:Have fun!
Ted
Code: Select all
SCREEN 13
'graphics
DIM grass(10, 10), path(10, 10), water(10, 10)
dim tent(10, 10), scout(10, 10), scoutmask(10, 10)
dim map(15, 30)
'initialize variables
dim scoutX
dim scouty
dim clr
dim x
dim y
dim key
dim tile
'player coordinates
scoutX = 5
scoutY = 1
'load grass tile
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 1 THEN PSET (x, y), 10
IF clr = 0 THEN PSET (x, y), 2
NEXT
NEXT
GET (1, 1)-(10, 10), grass
'load path tile
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 6
IF clr = 1 THEN PSET (x, y), 14
NEXT x
NEXT y
GET (1, 1)-(10, 10), path
'load water tile
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 3
IF clr = 1 THEN PSET (x, y), 11
NEXT x
NEXT y
GET (1, 1)-(10, 10), water
'load tent tile
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 6
IF clr = 1 THEN PSET (x, y), 8
IF clr = 2 THEN PSET (x, y), 0
NEXT x
NEXT y
GET (1, 1)-(10, 10), tent
'sprite
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 0
IF clr = 1 THEN PSET (x, y), 2
IF clr = 2 THEN PSET (x, y), 8
IF clr = 3 THEN PSET (x, y), 14
IF clr = 4 THEN PSET (x, y), 4
NEXT x
NEXT y
GET (1, 1)-(10, 10), scout
'load mask
FOR y = 1 TO 10
FOR x = 1 TO 10
READ clr
IF clr = 0 THEN PSET (x, y), 255
IF clr = 1 THEN PSET (x, y), 2
IF clr = 2 THEN PSET (x, y), 8
IF clr = 3 THEN PSET (x, y), 14
IF clr = 4 THEN PSET (x, y), 4
NEXT x
NEXT y
GET (1, 1)-(10, 10), scoutmask
'load map
FOR y = 1 TO 15
FOR x = 1 TO 30
read tile
map(y, x) = tile
NEXT x
NEXT y
DO
'wait &h3DA, &h8
screenunlock
screenlock
cls
'keyboard input
key$ = INKEY$
IF key$ = chr(255) + chr(72) THEN scouty = scouty - 1
IF key$ = chr(255) + chr(80) THEN scouty = scouty + 1
IF key$ = chr(255) + chr(75) THEN scoutx = scoutx - 1
IF key$ = chr(255) + chr(77) THEN scoutx = scoutx + 1
FOR y = 1 TO 15
FOR x = 1 TO 30
IF map(y, x) = 1 THEN PUT (x * 10, y * 10), grass, PSET
IF map(y, x) = 2 THEN PUT (x * 10, y * 10), path, PSET
IF map(y, x) = 3 THEN PUT (x * 10, y * 10), water, PSET
IF map(y, x) = 4 THEN PUT (x * 10, y * 10), tent, PSET
NEXT x
NEXT y
PUT (scoutX * 10, scoutY * 10), scoutmask, AND
PUT (scoutX * 10, scoutY * 10), scout, OR
LOOP UNTIL key$ = CHR$(27)
grass:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0
path:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
water:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,0,0,0,0,0,0
tent:
DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,0,0,0
DATA 0,0,0,1,2,2,1,0,0,0
DATA 0,0,1,1,2,2,1,1,0,0
DATA 0,0,1,1,2,2,1,1,0,0
DATA 0,1,1,1,2,2,1,1,1,0
DATA 0,1,1,2,2,2,2,1,1,0
DATA 1,1,1,2,2,2,2,1,1,1
DATA 1,1,1,2,2,2,2,1,1,1
scout:
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,0,0
DATA 0,0,0,3,3,3,3,0,0,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,3,2,2,2,2,2,2,3,0
DATA 0,0,2,2,2,2,2,2,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
scoutmask:
DATA 0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,1,1,1,1,1,0,0
DATA 0,0,0,3,3,3,3,0,0,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,2,2,2,2,4,2,2,2,0
DATA 0,3,2,2,2,2,2,2,3,0
DATA 0,0,2,2,2,2,2,2,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
DATA 0,0,1,1,1,1,1,1,0,0
tilenumber:
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,4,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,4,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,2,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,4,1,1,1,1,3,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3
DATA 2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3
DATA 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3