CS372: Lisp Room Assignment (200 pts)

There are 5 parts to this assignment, and it will take considerable time. Do not leave this until the day it's due. First, read the material at

Create a new character and promote yourself to programmer (10 pts)

  1. Connect to the Programmingland MOO (dbay.ndsu.edu:7777)

  2. Create a new character, using your original login name with a "2" appended
    (e.g. bslator => bslator2)

  3. Go to the Programmer Room
    Entry Way => Language Foyer => Faculty Offices => Building Objects => Programmer Room

  4. Invoke the 'pgmr_me' verb to complete your transition to a programmer:

Find the goalie and get your assignment (10 pts)

The relevant goalie is in the Programmer Room. Simply "touch" it to get your assignment.
NOTE: You must touch the goalie with your PLAYER character, not your new programmer character

Create your room in the appropriate entryway (65 pts)

Go the appropriate foyer in the Lisp wing of the musuem: number function foyer, character function foyer, list function foyer, or string function foyer.

You get to this by starting in the Language Foyer, going from there to the LISP Foyer, and then going from there to the Other LISP Functions hallway, and from there to the area you belong: either the List Functions Room, the Number Functions Room, the Character Functions Room, or the String Functions Room.

type 'help building' to read about how to use the '@dig' verb to create a new room.

Use the @dig verb to create a room for your Lisp function; i.e. if you are assigned the 'member' function, then you must create a member function room adjacent to the list functions foyer:

NOTE: After you have dug your first room, execute the NEW function: addmyexits to make your room visible

Example:

@dig minusp|exit to "The Minusp Function"

creates a new room and two exits, one taking players from here to the new room (via the commands 'minusp') and one taking them from the new room to here (via 'exit'). Use the @describe verb to write your function's description on the wall of your room. Use the format you find in the material online at Common Lisp the Language (CLtL). You should quote that material, BUT BE SURE TO CITE YOUR SOURCE!!

Your description should include the syntactic description of your function's calling protocol.

Your description will be stored as a list of strings.

i.e. if you are assigned the 'member' function, your description will look like this:


{"member [Function]",
"member item list &key :test :test-not :key",
"member-if predicate list &key :key",
"member-if-not predicate list &key :key",
"",
"The list is searched for an element that satisfies the test. If",
"none is found, nil is returned; otherwise, the tail of list",
"beginning with the first element that satisfied the test is",
"returned.",
"The list is searched on the top level only. These functions are",
"suitable for use as predicates. "}

Note if your description contains the double-quote character you will need to escape it with a backslash

BE SURE TO INCLUDE the examples you find in CLtL on the wall.

Create a bot and and a backroom for it, then program it to answer questions (65 pts)

  1. The assignment is to create a Lisp Tutor

  2. Log on to the Programmingland MOO
    (dbay.nodak.edu:7777)

  3. Read the material in the Talking to Robby transcript

  4. Read the material at Help about Robby

  5. (10 pts.) Create your tutor, a child of Generic Bot(#100)

  6. (5 pts.) @describe your tutor

  7. (5 pts.) @dig a back room for your tutor to stay

  8. (10 pts.) @describe the exits to/from the tutor's room

  9. (5 pts.) @describe the tutors room

  10. (15 pts.) Add questions and responses to your tutor so that it can act as a guide to your exhibit

    Read Question-based Dialog Networks

    • (14 pts.) Write at least seven question/answer pairs for your robot tutor, from at least four question categories. The answers must indicate what question category they are in; for example:

      Question: Where am I?
      Answer: [Context] You are in the MMDDYY room of the ProgrammingLand Virtual Museum

    • (1 pt.) Find a way to have your robot use the word 'docent' in an appropriate manner.

  11. To get credit for the assignment, create a transcript of your work, showing that you have completed each of the steps (it is YOUR responsibility to document your work). If your achievements are not in the transcript you will not get credit for them.

Program the bot to greet guests (50 pts)

  • (15 pts.) specialize the 'enterfunc' verb on your function room so that it calls the 'start' verb on your tutor

  • (15 pts.) define a 'start' verb on your tutor so that it will go through the door of it's room, into your machine room, and issue a greeting

  • (10 pts.) Implement a 'memory' of visitors, so your tutor's greeting is different for new and repeat business

  • (10 pts.) Implement a .visitor_count property that is incremented by the :enterfunc() and decremented by the :exitfunc() on your machine room. When the .visitor_count is decremented to 0, send your robot tutor back to its room.

  • contact: slator@cs.ndsu.edu
    history: