Second Server Group Assignment

In order to prepare for this assignment, you will need to read the LambdaMOO Programmer's manual, and do the take-home exam at: http://www.cs.ndsu.NoDak.edu/~slator/html/takehome1.html

Mail your answers (a simple list of 30 numbers will do), to your subgroup leader: either jreiser@cableone.net or brick_thompson@ndsu.nodak.edu. Please complete this by Friday, Feb. 23rd.

Next, in order to give you some good practice, I want to divide the two existing server subgroups into smaller units (while still keeping a balance of novice and experience), as follows:
Sub-sub groups:

  1. Wong, Lorentz, Balliet, Parisien
    (work together on ex. #1 and #2, below)
  2. Carlson, Schott, Dang, Ernst
    (work together on ex. #3 and #4, below)
  3. Hofland, Louwagie, Guerard, Blaha, Dieken
    (work together on ex. #5 and #6, below)
  4. Matthews, Hartmann, Crary, Schilke
    (work together on ex. #7 and #8, below)

You should plan to have these practice exercises completed by Tuesday, March 6th. Again, notify your subgroup leader when you are done. They will be writing a simple wrapper routine, that will call your routines, in order to periodically check the status of the simulation. Note that you will need to absorb the material at http://www.cs.ndsu.NoDak.edu/~slator/html/blackwood/current-state-jan01.html in order to know what your exercises should be checking for. The practice exercises are to write a routine that:

  1. goes through the list of $g.street, looking at each exit named with a cardinal direction (eg. north, south, east, west, southeast, northeast, southwest, northwest), and confirm that 1) each exit points to another $g.street with 2) an exit pointing back that is named with the opposite direction. Print a list of errors and possible solutions (i.e. @rename #1234 to south,s)
  2. goes through the list of $g.street, looking at each exit pointing to a $g.store, and confirm that each store has an exit named "street" pointing back. Print a list of errors, with solutions where possible.
  3. goes through the list of $g.street, looking for each exit pointing to a $g.store, and checks that the store is "well formed" (e.g. with a backroom, a basement, a backyard, an outhouse, an upstairs, etc.), see the store description at http://www.cs.ndsu.NoDak.edu/~slator/html/blackwood/currstate/store-stuff.html Print a list of errors, with solutions where possible.
  4. goes through the list of $g.gameroom, looking at each exit, and confirming that it points to a room that is also of type $g.gameroom (and not a programmer room, or something else). Print a list of errors, with solutions where possible.
  5. goes through the list of $prog and checks whether their .home is assigned a room that is owned by them. In those cases where an error is found, attempt to find a $g.programmer_room that IS owned by them . Print a list of errors, with solutions where possible.
  6. goes through the neighborhoods ($g.hood) and checks whether their list of streets is accurate. Print a list of errors, with solutions where possible.
  7. goes through the list of $g.gui_exit and confirm that their .source and .dest properties are valid rooms. Print a list of errors, with solutions where possible.
  8. goes through the children of $g.store and check that $g.current_stores is an accurate list. Print a list of errors, with solutions where possible
  9. goes through the list of $g.programmer_room and confirms that exits only point to other programmer rooms. Print a list of errors, with solutions where possible
I have done the last one so you have an example to follow. See check_prog_rms. Notice that I have implemented the solution as a verb defined on my prograqmmer character (slator (#124)). This code is fair game, borrow from it as you see fit.

Additional existing routines you can inspect and borrow from are these:

;$g.cg:check_cg_props()
1. Wood Lot Operators with kids (#679) owned by sanders0 (#268)
    5 value_ properties and 5 properties check out fine
	[...]
9. Carpenter/Builder_No_Kids (#693) owned by cschanze (#136)
    Warning: .description LIST should be at least two lines.
    5 value_ properties and 5 properties check out fine
	[...]
39. Cartwright With Kids (#1182) owned by slator (#124)
    Warning: .description property should be a LIST
    Error: 0 in age_range should be a STR from age_range_values
    Error: 0 in income_level should be a STR from income_level_values
    Error: 0 in work_status should be a STR from work_status_values
    Error: 0 in domicile should be a STR from domicile_values
    Error: 0 in family_status should be a STR from family_status_values
    5 value_ properties and 0 properties check out fine

;$g.product:check_products()
Product (#676)
  Product Type: Blacksmith Products (#661)
    Product: Equipment Rental (#1204)
      Error: length of .consumer_table should be43
      Model: Enhanced Steel Plow (#1233)
      Model: Enhanced Manure Spreader (#1234)
      Model: Basic Steel Plow (#1256)
      Model: Basic Manure Spreader (#1257)
	[...]
  Product Type: Tailoring Products (#626)
	[...]
    Product: Hats (#2042)
      Error: .possible_features {} LIST is too short
      Error: length of .consumer_table should be43
      Model: Top Hats (#2046)
        Error: .features {list} is empty
      Model: Cowboy Hats (#2047)
        Error: .features {list} is empty

;$g.hood:check_hoods()
Neighborhood (#677)
  Neighborhood: West Side (#1237)
    No static problems found in #1237
     .consumer_population total:100 is correct
  Neighborhood: Fort Wood Trading Post (#1244)
    Error: .streets should be a LIST of OBJECTS
    Error: .streets contains things that are not Street (#1280)
    Neighborhood #1244 has 1 or more errors
    Error: .consumer_population total:120 should be 100
	[...]

;$g:show_stores()
1. Riverside Wheelwright (#1462) in Riverside (#1273) run by bernie (#2995)
	[...]
10. West Outpost Stable Operator (#1705) in Neighborhood (#677) run by gritchie2 (#3009)
	[...]
15. Riverside Blacksmith (#1810) in Riverside (#1273) run by ?
	[...]
33. Blackwood School (#270) in Neighborhood (#677) run by ?
	[...]

Partial List of Next Projects

Compare the actual list of existing stores to the table at http://www.cs.ndsu.NoDak.edu/~slator/html/blackwood/currstate/store-stuff.html to determine what stores, if any, still need to be built, and build them

Run the ;$g.product:check_products() routine, identify the errors and repair them.

Run the ;$g.hood:check_hoods() routine, identify the errors and repair them.

Run the $g.cg:check_cg_props() routine, identify the errors and repair them.


History: 18Feb01; Contact: slator@cs.ndsu.edu