I am trying to create a TYPE that has the ability to hold a list of types in it's namespace. the example i have is series of rooms and a bunch of stuff. since stuff can only be in a single room at a time, how would I associate the particualr stuff with the room. keep in mind that 'stuff' is an object of type TYPE.
stuff = a laptop and a stapler
rooms = kitchen and bedroom
this is what I have so far. Is there a better way?
Global all_things:Tlist = CreateList()
For i$ = EachIn ["spoon","car","TV","telephone","Laptop"]
my:stuff = New stuff
my.name = i$
ListAddLast all_things,my
Next
Type stuff
Field x,y
Field name$ ' name of this thing
Field room$ ' room that this thing is currently in
End Type
Type room
Field name$
Method add_a_thing(xp,yp,name_of_thing:String)
For b:stuff = EachIn all_things
If b.name = name_of_thing
b.room$ = name$
EndIf
next
End Method
Method list_things()
Print "The "+name+" has:"
For b:stuff = EachIn all_things
If b.room$ = name$
Print b.name$
endif
next
End Method
End Type
' -----------------------------------------------------------------------
kitchen:room = New room
kitchen.name = "Kitchen"
kitchen.add_a_thing(100,100,"car")
kitchen.add_a_thing(100,100,"spoon")
kitchen.add_a_thing(100,100,"Laptop")
bedroom:room = New room
bedroom.name = "Bedroom"
Bedroom.add_a_thing(100,100,"TV")
Bedroom.add_a_thing(100,100,"telephone")
Bedroom.add_a_thing(100,100,"spoon") ' spoon is same object as spoon in kitchen
kitchen.list_things()
Bedroom.list_things()
Print " =================== "
Bedroom.add_a_thing(100,100,"Laptop") ' taken from the kitchen
Bedroom.add_a_thing(100,100,"foosball table") ' does not exist in list of all_things
kitchen.list_things()
Bedroom.list_things()
|