Quote: "@obese, are you able to assign arrays to data statements?"
not really sure what you mean.
You can assign the data in data statements to arrays
e.g.
DIM Map$(99)
Read Map$(1)
Data "Dungeon"
Quote: "Wouldnt the way that you showed me mean that I would have to organize my map in an even square?"
No, the shape of the map depends on its width, but it would have to be rectangular. Why is that a problem though? If you don't want to use certain squares then leave them blank
16 rooms, width=4
00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
16 rooms, width=8
00 01 02 03 04 05 06 07
08 09 10 11 12 13 14 15
16 rooms, width=2
00 01
02 03
04 05
06 07
08 09
10 11
12 13
14 15
If you use a width that isn't a factor of the total number of rooms the last row will be uneven.
16 rooms, width=5
00 01 02 03 04
05 06 07 08 09
10 11 12 13 14
15
Maybe you want it like that but in my eyes it doesn't look too good.
Quote: "Also would I need to assign each array that I have so that room1 one is west and room 10 is south?
"
I don't really understand you there

You don't need to change the room numbers, if you are at room 12, then going south would take you to room 22, you don't have to travel in a straight line through all the rooms.
This is a free-roaming RPG right?
I'm making a short example to show you how to move between the rooms...
[edit]
Haven't finished the movement part yet but it hints at how it would work.
rem Obese's 1D Map Example
rem **********************
`Initialise the program
gosub Setup
gosub MakeArrays
`Randomize the map (uh-oh!)
for sq = 0 to 63
Map(sq)=rnd(5)
next sq
`Player Position
P=rnd(63)
`-------------------
` Main Loop
`-------------------
Do
gosub DrawMap
gosub Info
sync:cls rgb(128,64,0)
Loop
End
`-------------------
` Gosubs
`-------------------
Setup:
set display mode 1024,768,32
hide mouse
sync on
sync rate 60
randomize timer()
Return
`----
MakeArrays:
`Define some colours for the different areas
Dim Colour(5)
Colour(0)=0 :`empty square (black)
Colour(1)=rgb(220,200,64) :`desert (yellow)
Colour(2)=rgb(20,128,0) :`jungle (dark green)
Colour(3)=rgb(128,224,0) :`grassland (light green)
Colour(4)=rgb(0,64,128) :`sea (blue)
Colour(5)=rgb(240,240,240) :`town (white)
`Make some strings to describe the areas
Dim Info$(5)
Info$(0)="private land"
Info$(1)="a vast desert (mmm... desert!)"
Info$(2)="a deep jungle"
Info$(3)="a grassy plain"
Info$(4)="the briny deep"
Info$(5)="a pleasant town"
`Create a 64-roomed map
MapArea=63 :`it's really 64 as 0 is also a square
MapWidth=8 :`I like square maps :P
MapScale=32 :`used when scaling up the map for display
MapPosX=100 :`the map's X position on the screen
MapPosY=100 :`the map's Y position on the screen
Dim Map(MapArea)
Return
`----
DrawMap:
For sq = 0 to 63
ink Colour(Map(sq)),0
`Get square's 2D position
y = sq/MapWidth
x = sq-(y*MapWidth)
`Draw square
box MapPosX+(x*MapScale),MapPosY+(y*MapScale),MapPosX+(x*MapScale)+MapScale,MapPosY+(y*MapScale)+MapScale
`Square Number
i = Map(sq)+1 : if i>5 then i=0
ink Colour(i),0
text MapPosX+(x*MapScale)+2,MapPosY+(y*MapScale),Str$(sq)
Next sq
Return
`----
Info:
Ink rgb(255,220,0),0
Tx = MapPosX+(MapWidth*MapScale)+20
Text Tx,40,Str$(P)+". You are standing in "+Info$(Map(P))
`North
If (P-MapWidth) >= 0
Text Tx,60,"To the north is "+Info$(Map(P-MapWidth))
Endif
`South
If (P+MapWidth) <= MapArea
Text Tx,80,"To the south is "+Info$(Map(P+MapWidth))
Endif
`East
If P/MapWidth=(P+1)/MapWidth
Text Tx,100,"To the east is "+Info$(Map(P+1))
Endif
`West
If P/MapWidth=(P-1)/MapWidth
Text Tx,120,"To the west is "+Info$(Map(P-1))
Endif
Return
