Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Fall 2004 M2
Enable Characters to Interact with the World
For this milestone you will need to form a group of 3-4 students from within the class. You might find it helpful to read about Team Issues, particularly the Tips for working in groups. This group will be responsible together for milestones 2 through 6. Your first task for M2 is to form your group (use the Fall 2004 Team Formation Page to find members), and create a team entry on the Swiki in the Fall 2004 Team Declaration Page. You must declare a team no later than September 17. If you do not have a complete team by Spetember 17, then make sure you go to class on that Thursday, and we will try to facilitate your finding some partners. YOU MAY NOT DO THIS PROJECT ALONE (or in a 2 person group)!!
Look at the page on Code Management for suggestions on how to transfer files between team members.
You may reuse any code that you wrote for M1 if you feel it is useful. The only restriction is that the M1 code reused must have been written by one of the members of your group.
For M2 you will expand your game so that people can interact with other people and objects in the world. You will have more freedom in the way you implement this milestone (i.e. exact classes and methods will not be specified), you must simply meet the following requirements:
1) As a team, you will create scenarios that cover all of the major functionality of theis assignment (see About Scenarios) and CRC Cards to define your classes and the relationships between them. You will also perform object oriented design (OOD) and create a UML class diagram to reflect your analysis.
2) Currently you should have "Thing" and "Person" classes. For this milestone, you will need to continue to represent People and extend this model to represent Buildings, Rooms, Fixed Items (things that stay in a room), and Transportable Items (things that people can pick up, carry, and put down).
3) You will extend your person class so that an instance of a Person
- knows its location
- can move to an adjacent location
- can pick up possessions
- can drop possessions
- when a person enters a room, he/she should be affected by the other people in that room, and those people should be affected by him/her
- when a person enters a room, he/she should be affected by some of the fixed items in that room
- when a person picks up an object, he/she should be affected by having possession of that object
you must include with your turnin some easy way for your ta to see that your program meets all the requirements. this may be in the form of:
(basically i just want to make sure no one loses points because their ta couldn't read their minds to figure out how some particular function of the program works)
- workspace code (a text file that the ta can copy/paste and execute)
- a class method like "World CreateDefaultGame"
- sunit tests
- a real live demo (check with your ta to set up a time)
- something else i haven't thought of?
- 10% scenarios
- should cover all major functions of the project from the user's point of view see About Scenarios
- 10% crc
- reasonable names, understandable and clearly defined responsibilities, clear use of collaborators to move through cards
- 10% uml
- only a class diagram is required, but you are welcome to include any other diagrams that you feel help to clarify your design to your ta, or that you found helpful in the design process with your team-mates
- matches crc card analysis
- clearly communicates design (this includes the technical correctness of the diagram)
- 10% well documented & good style source code
- is your code readable by another person (your team-mates and ta)?
- you should have class comments (in the '?' section) as well as comments in your code
- do you follow smalltalk naming conventions?
- 10% quality of design
- quality of ooa/ood
- appropriate re-use of code (e.g. did you use an array where a dictionary might be better)
- you provided a good demo for your ta (see requirement 5)
- 20% people
- know or can find out thier location
- can move to adjacent locations
- are affected by interactions with other people
- are affected by interactions with items
- 10% building & rooms
- you are only required to have one building for this milestone
- this building should contain rooms with some notion of adjacency
- that is we want you to deal with the idea of adjacency beyond "every room is adjacent to every other room." there must be at least one room which is not adjacent to at least one other room
- 10% fixed items & transportable items
- fixed items can exist in rooms
- transportable items can exist in rooms or in people's possesion. people can pick up and put down items. (e.g. if a person walks into a room carrying a notebook, sets it down, leaves the room, and comes back, the notebook should still be there, so that he/she can pick it up again)
- 10% sunit tests
- these should cover all classes and methods
Link to this Page