best way to represent data?

BlitzMax Forums/BlitzMax Beginners Area/best way to represent data?

What would be the best way of representing this data:

a 2d map with 10 x 10 squares
in each square a person
on each person a sword and a bag
in each bag a healing potion

thanks

Something like this maybe?
Global map:Person[10, 10]

Type Person
    Field s:Sword
    Field b:Bag
EndType

Type Sword
    Field dmg:Int
EndType

Type Bag
    Field items:Potion[]
EndType

Type Potion
    Field healpoints:Int
EndType


thanks
how would I access say, a sword or a potion to read its fields
(I never got the hang of types in types before)

map[x, y].s.dmg ' < Will give you the damage of the sword at x & y

map[x, y].b.items[n].healpoints ' < will give you the hp recovered from that potion (n - potion number)

but you will have to create them first:
map.b.potion = new int[n]

gluck

thanks,
whats the best way of creating a new person and putting him on the 8,3 square of the map?

map[8, 3] = new person

Yeah, and to create a new person on every square do
map[10, 10] = New Person[10, 10]

let me just make sure I understand whats going on

MAP is a global array
map:person[10,10]

is confusing,
what relation is the type 'person' to the array 'map'- is it an array of type pointers?

same with
type person
field s:sword


is 's' a pointer to the type sword?

Yeah, it can only point to an instantiation of the type (or an Extended type from it).