CSCI 201 Fall 2002: Assignment 6


Overview

You are given a jar file as your starting point for this assignment; select this link to access that file. When you extract the contents of that file, you will find the following:

The purpose of this program is create an ASCII (i.e., text-based as opposed to graphics-based) version of a totem pole. Your totem pole must consist of 10 "heads" where each head is created from a combination of facial features, such as hair, eyes, nose and mouth. Each facial feature class must be derived from the FaceFeature base class. The Hair class is provided as an example of a class that is derived from the FaceFeature base class.

Your Task

Your job is to complete the totem pole. To do so, you must implement the remaining facial features required to create a single head, and then complete the TotemPole and Head classes to produce a totem pole consisting of 10 different heads. The 10 heads must all have potentially different widths and be located at potentially different offsets from the left-margin of the page. While the width and offset of each head must be potentially different from the next, the facial features belonging to a single head must all have the same width and offset.

The required facial features are:

Each class implementing a facial feature must be derived from the FaceFeature class. (Notice that the Head class also is derived from the FaceFeature class.) Also remember that each face in the totem pole must be potentially unique, therefore the facial features that you create should allow for more than one configuration (see the Hair class as an example). The MAX_STYLES instance variable in the FaceFeature class, is intended to control the number of alternative configurations provided for each facial feature.

What to Turn In

Turn in the source code for all of the files that you write or modify in creating the totem pole:

Remember that the files you turn in must have exactly these names. You were shown how to transfer files to your class ftp directory in lab 1, here is a quick refresher.