Design Document for "Critters in a Box"

The learning in this project is centered around the idea of a sense of smell.  We decided to map smell to the same five categories as taste, since the two are very closely linked.  Thus, there are five categories of smell: sweet, bitter, salty, sour, and umami, or savoriness.  

Even though the world is fully observable, we wanted to give the critter a bit of trouble in learning his way around, so although he automatically knows when new things are added, he must nibble them before he knows what effect the item has on him. 

Therefore, the critter's main objectives can be roughly summarized in a "decision tree" that runs something like: if he is hungry or thirsty, get food or water.  If he isn't hungry or thirsty and is capable, then he should attempt to procreate.  If he cannot procreate, then he should explore the world around him and learn what is safe to eat.  All of these concepts, activities, and brainstorming sessions were performed equally by both team members.

The critter's learning comes through associating the factors of smell (listed above) with the effect the item has on his health while nibbling.  If an item has a negative effect on his health and its smell is (for instance) composed only of bitterness, then the critter's "preference" for bitterness is lowered.  The critter does not remember what items specifically produced what effects, but he remembers his preferences for the different factors of smell.

Before eating an item, the critter ponders whether he wants to eat the item in question.  He smells the item, performs a weighted average calculation on his preferences and this item, then, if the decisions comes out positive, eats the item.  If not, he passes it by and looks for something else.

The contributions to this project have been very equal for each team member, although early in the project Stewart focused more on the GUI while Avery focused on creating the mental processes and getting the critter to successfully interact with the environment and have a working mind.

This document was written by Avery, while the instructions and revised proposal were written by Stewart.  Code submission was done by Avery, so if there are problems with the JAR file, she is the one to contact.