TopPart 1Part 2

Part 2

Once you get the basic version working, we would like you to jazz it up a bit. Here are the extensions we would like you to make:

  1. Add labels (Text items) at the bottom of the picture showing the number of correct and incorrect placements. This makes it clearer when the student succeeds in placing the item correctly. They should read something like "correct = nn", "incorrect = mm". The value in the first Text item will be formed by concatenating the string "correct =" with an integer instance variable which keeps track of the number of correct answers. The other is similar.
  2. Users should drag the items to the correct laundry basket rather than just clicking on the basket. Recall from the example in class that you will need an instance variable to label the last mouse position before the drag so you can determine how far to drag the item. If the user presses the mouse button down outside the laundry item, it should not increase the correct or the incorrect counter.
  3. Assign the item a randomly generated color by randomly choosing integers redNum, greenNum, and blueNum between 0 and 255 for each of the red, blue, and green components of the color. You can create a color from those components by writing new Color(redNum,greenNum,blueNum). Now define criteria for determining where each color should go. The simplest criterion is based on the sum of the three color components. If the sum of the component numbers is less than 230, decide the item is dark. If the sum is greater than 600, decide the item is white. Otherwise the item is colored. After you get the program working you might want to experiment with other criteria.

We will let you figure out most of the details of how to add the features for the more advanced versions. One piece of advice is that for the second enhancement you will be dropping the onMouseClick method in favor of using the three methods:



Grading Guidelines

Value Feature
Style, Design, and Efficiency (10 pts total)
2 pts. Descriptive comments
2 pts. Good variable names
2 pts. Good use of constants
2 pts. Appropriate formatting
1 pt. Does not generate new objects unnecessarily
1 pt. Design issues
Correctness (10 pts total)
2 pts. Generates a new color swatch only if previous one placed correctly
2 pts. Swatch displayed in the correct initial position; returns to original location if incorrectly sorted
2 pts. Updates number correct and incorrect properly
2 pts. Drags swatch properly (-1 pt if can use clicking instead of dragging
2 pts. Appropriate behavior if user does unexpected things like starting to drag outside the swatch
Extra credit (1 pt)
1 pt. Does not update either # correct or # incorrect if user misses all baskets

Final remarks

Be sure to do the basic version of the lab before attempting the more advanced features. Just work on adding one feature at a time, testing each thoroughly before working on the next.

Turning in your program

Your program is due at 11p.m. on Wednesday evening. Turn in your program as you did last week. Here are the instructions again:

If you should accidentally turn in a bad version of your program, you may drag another copy in as long as you change the name to be slightly different from the one you used before (e.g. Jane Doe - lab 2a). The new name should make it clear which is the newer version.

Good luck and have fun!


Computer Science

051
Department of Computer Science
Pomona College


TopPart 1Part 2