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:
- 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.
- 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.
- 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:
- onMousePress - for when the user first clicks on
the item - though remember that they might miss.
- onMouseDrag - to do the actual dragging.
- onMouseRelease - check to see if they've dropped
it in the right place when the mouse is released.
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 |
|
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.
Your program is due at 11p.m. on Wednesday evening. Turn in your
program as you did last week. Here are the instructions again:
- First, return to Eclipse and make sure you included your name
and course number in a comment at the start of the program.
- Next, click on the "Laundry" project in the Package
Explorer panel on the left side of the Eclipse window.
- Now, select "Export" from the "File menu.
- Click on the triangle next to "General" in the dialog box.
Select "File system" and click next.
- Make sure all the files in the dialog on the right hand side are
checked, and then click the "Browse" button next to the
"To directory:" entry
- Select "Desktop" from the pulldown menu and click on "Choose".
- This should create a new folder called "Laundry" on the
desktop. You should now rename that folder by clicking on it and
pressing return, and typing in a more descriptive name (one
that identifies you and the lab you
are working on, such as "Chen-Lab2" or "Chen-Laundry"
- except replace "Chen" by your name!).
Note that dashes in names are OK, but don't include spaces
or periods.
- Quit Eclipse.
- Now open the "cs051" folder icon on the desktop by double-clicking
on it. Within the "cs051" folder you should see a "dropbox" folder.
- Drag the folder you just created into the dropbox folder. When you do
this, the computer may warn you that you will not be able to look at
this folder. That is fine. Just click "OK".
- The folder you created will still show up on your desktop. Drag it
into the trash both to save space and to keep anyone from copying it.
(Files in your CS51Workspace folder are protected so that others cannot
read them.) Press the right mouse button on the trash icon to bring up a
menu and select "empty trash".
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