declare arrays for
 rooms name and desc
 map,                          
 objects: (all in one array)  yes=1  no=0
	  Name, desc, desc when broken (or none), smell, taste, feel,
	  room (or 0), carried by chr no (999=you, 0=none),
	  size:   
	     1 non-movable eg wardrobe, 2 semi-movable eg mattress, 
	     3 large movable eg tv, 4 medium movable eg pillow, 
	     5 small movable eg key 
	  Flags:  openable? y/n (not for size 5), open? y/n (not for 5),
	     can size 4 objects be hidden underneath? y/n (not for 4-5)                   
	     No. of object it is on top of (or 0) (not for 1),   
	     no. of object it is inside (or 0) (not for 1-2) 
		999=hidden in a chr's pocket
	     no of object it's hidden underneath (4-5 only),
	     If it is under/inside something, is it known to the plyr? y/n
 Objects can only be put inside a larger one.  They can go on a larger one or 
  one of the same size.  Size 5 objects can be hidden under anything.  
  If something is open but not openable then it's permanently open, eg crate
Array has objects from largest to smallest, edible ones last.
Set flags for end of size 1, 2 etc, start of edible objects.

characters & animals:  name, desc, smell, taste, feel, room, 
   method of attack eg she kicks
   friendliness - array for each other chr + you: 
      0 neutral 1 friendly 2 unfriendly
   mood  - 0 neutral 1 happy 2 unhappy
   no. of chr they are following (999=you)
 For people:
   Random behaviour for each mood eg She whistles merrily
   Random talking for each level of friendliness eg He says 'Leave me alone!'
 animals go at end of array - variable to mark the start of them 

variables - location, time, hunger, tiredness
verbs - array of verbs and their number.
nouns - inc. alt. names of objects and their no.
check winning
hunger, fatigue, night etc
show room name & desc, time if applic.
   show chrs (plus objects carried if not inside something/hidden)
   show objects if not inside a closed object/hidden.  
  
get input:
   look (at, in, under).  Objects on top of an object or inside an open
	object are automatically visable.  'Look in' automatically opens
	an object.  Change 'known' flag.
 n/s/e/w, get, drop, i, examine, attack, eat/drink, sleep, light,
 give, say, kiss etc, score, buy, steal,follow

Allow player to add words to the vocabulary if they are synomyns 
  
Talking to chrs:  Look for 'say' 'talk' 'tell' 'ask' 'demand'
  or chrs' name and a comma.
  Establish to whom you are talking (if more than one person in room,
  scan input for a character's name.  First one found is presumed to be
  the one.)
Check chr's friendliness, maybe abort at this point.  See if it's an animal
Your commands: ask for OBJECT/give me OBJECT/demand OBJECT
	       ask about OBJECT or PERSON or ROOM  ?Room may be pointless
	       tell about/say KEYWORDS
	       say go away/n/s/w/e/to ROOM  ?Cute but not very useful
	       say attack CHR  - check friendliness to that chr
	       say take OBJECT              ?Not really necessary
	       say drop OBJECT              ?Not really necessary
	       say follow me
Ask about:  use arrays for each chr containing an object/chr name and a
	    response.  (No need to do every object & chr though!)
Tell about/say:  arrays of keywords (eg 'murder', 'hello') and a chr's
   response  (eg She says 'That's awful!' and starts to cry, he says
   'hi there')
   and a chrs response when you repeat it eg he says 'you already said that'

Chr intelligence:
  Move, pick up & drop objects
  Random behaviour for each mood (rarely) as in array
  Random talking to you or other chr present depending on friendliness
     (rarely) as in array
  Attack other people (check friendliness)
  Sleep

