View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Summer 2005 Milestone 5


For the final milestone, you must add two major pieces of functionality:
  1. Your tank must be viewable over the World Wide Web.
  2. You must support the new denizen types defined by some other group in the class.

Discussions about this milestone are on Questions on Summer 2005 M5.

Web Interface

Any running tank should make its state available over the world wide web. There must be some URL that can be visited to get the current information displayed on a single page:
  1. a picture of the tank as it currently appears
  2. a list showing the number of each kind of acquatic denizen currently in the tank. For example, it might show, "3 normal fish, 1 snail, 4 food pellets".

Think of it as a "tank cam". If you have a long-running computer somewhere, feel free to start a tank running and post its URL to Tank Cams.

Optionally, you may make it an option in the user interface to enable or disable the web interface. However, it must not requiring typing extra code in order to start the web interface.

Supporting Another Group's Denizens

You must add support for another group's denizens. That includes a number of new features you must design and implement:
  1. Your simulation should support having all kinds of denizens in the tank simultaneously.
  2. Your user interface must allow adding all kinds of denizens to the tank.
  3. You must be able to load saved-tank files from the other group.
  4. You must be able to save tanks that have both old and new kinds of denizens in them.
  5. You must have a user-visible load routine that can load all three file formats: your old format, the other group's old format, and the new extended format.

As one exception, you can treat normal fish in the other group's file as the same as your normal fish. If you prefer, you can convert their normal fish to yours when you load.

Otherwise, loaded denizens need to behave as similarly as possible to the way they behaved in the other group's software. They should look the same move in the same directions and speeds, age at the same rate, and so on.

Sharing Code

Feel free to re-upload your M4 submission to M4 Code Swapping. That's right, go ahead and upload the whole thing. Make your own page on the code swapping page, and on that page you should put:
  1. a copy of your M4 code
  2. a saved-tank file that includes all kinds of denizens your M4 tank supports
  3. a description of your new denizens
  4. any design notes description of your design
  5. anything you have to say to convince people to use your group's code

Thus, if you want, you can implement the other group's denizens by loading and reusing their code directly. You can implement your new load routines by reusing their load code directly. Just be sure to document any reuse of other group's code. You are allowed to reuse anything posted on the M4 Code Swapping page, but failure to acknowledge the code you reuse is considered plagiarism.

This is a lot of code, but it is not completely open season! You may not share any code for M5 with each other. You may not "fix up" your M4 submission before posting it to the above page. The only major code sharing that is allowed here is that you can upload a verbatim copy of your M4 submission.

That said, it is allowed (and desirable!) that you discuss each other's code in general terms. You may even want to add feedback infromation on your M4 Code Swapping page so that you can lure potential clients to reuse your code.

Extra Credit for Sharing

If one group uses your denizens, then you get +5 points on your milestone 5 grade. If three or more groups use your denizens then you get +10 points. It is thus possible to get a 110 on your milestone 5.


Your submission should include:
  1. updated design documents for the new functionality
  2. an indication of which group's denizens you are implementing
  3. a description of any code you reused from another group


Links to this Page