Q3: Methodical Improvement

Table of Contents


  • Apply randomization to your scenario
  • Organize your code into methods
  • Use keyboard user input in a scenario
  • Play sounds in a scenario

Academic Honesty

Read the Scholastic Honesty Policy and Assignment Integrity policies of the syllabus. Here are some clarifications for this particular assignment:

  • You are encouraged to work with one other student of this class following the Rules of Pair Programming. If you choose to pair program, there is a bonus applied.
  • If you pair program, you must combine both sets of code from the last quest to produce one project.
  • You may not show your completed code to another person or look at another person's code until you complete and submit this assignment, except for code you develop together with your pair-programming partner.
  • You may copy small portions of the code from the textbook or the instructor's web pages.
  • You may get help from people other than your pair-programming partner if you get stuck, but only if they do not show or tell you the code to type.

If you get stuck, take a break and come back to it later, talk to the professor, or ask a classmate for help. Remember, do not allow the classmate to type code for you or show you code to copy.

Project Crafting Specifications

Update your project from the last quest by completing the following specifications. Remember that this is an original project with the specifications applied to something other than Lesson World or Crab World. You may NOT use any classes from the lesson or book; all work must be original.

  1. Make certain that your project meets the specifications of the last assignment and correct any problems.
  2. To your project from the last assignment, add random movement to at least one Actor that calls the Greenfoot getRandomNumber() method.

    If you prefer, you may start a new scenario as long as the scenario meets all the specifications of the last assignment (like original characters) and this assignment.

  3. Declare and assign values to at least two (2) variables in one of your Actor subclasses.
  4. Code at least one if-statement with relational operators in your scenario.
  5. Develop an interaction between at least two types of objects in your scenario, calling both of these methods of the Actor superclass:
    1. isTouching()
    2. removeTouching()
  6. Organize your scenario code by writing and calling at least five (5) of your own original methods besides act(), prepare(), or constructors.

    Add these methods to original classes and not built-in or imported classes.

  7. Add keyboard controls for the player (user) of your scenario by using the Greenfoot isKeyDown() method for at least one Actor.
  8. Play at least two sounds in your scenario using the Greenfoot playSound() method.

    Please keep sound files small (< 1 MB). You can reduce the size of MP3's and other audio files, even online.

  9. Call the Greenfoot stop() method when your scenario ends.
  10. Update the Scenario Information (README.TXT file) for your project to fill in all the information for the Greenfoot supplied labels like your name for AUTHOR and information for PROJECT TITLE and VERSION OR DATE, as well as providing the current status.
  11. Submit a zip file (with all source code) of your original project to Canvas as explained in the section of this document: Deliverables.

Project Extra Credit

Adding the following are worth extra credit points:

  1. Complete the assignment following the rules of pair programming with one other student of the class. (1 point)

    You must combine both sets of code from the last quest to produce one project.

  2. Add a private instance variable to an Actor or World subclass named score that keeps track of the score. Then use the showText() method of World to display the score. (2 points)

Make certain that your Scenario Information README.TXT file describes any extra credit attempted.

Grading Criteria

The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.

Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.

For information on grading policies, including interpretation of scores, see the syllabus page.

Project Functionality

  • 10: Demonstrates mastery of the assignment
    • Has extra features or demonstrates techniques beyond the assignment
    • Applies concepts from the lesson(s) appropriately
    • Meets all specifications with particularly elegant solutions
    • No errors encountered during operation
  • 8: Has all the functionality expected of the assignment
    • Demonstrates many techniques from the lesson
    • Meets all specifications
    • Implementation seems more complicated than necessary.
    • May have one minor error
  • 6: Has most of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets all but one of the specifications
    • Implementation seems excessively complicated.
    • May have 2-3 minor errors
  • 4: Has some of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets at least 1/2 of the specifications
    • Implementation seems excessively complicated.
    • May have more than 3 minor errors
  • 2: Serious functional problems but shows some effort and understanding
    • Meets less than 1/2 of the of the specifications
    • Has a major error or many minor errors
    • Implementation seems very convoluted
    • Demonstrates few techniques from the lesson
  • 1: Does not compile, not turned in, or wrong folder name
  • 0: Not turned in

README.TXT File for Project

  • 2: README.TXT file submitted with specified information included
  • 1: README.TXT submitted but some information was not included
  • 0: No README.TXT submitted or wrong folder name

Maximum Score: 12, plus extra credit


Follow these instructions carefully and exactly to turn in your quest (assignment) to Canvas and maximize your XP:

  1. Zip your scenario folder.
  2. Submit the zip file to quest Q3: Methodical Improvement in Canvas.

Do not put any spaces or special characters like #, : or $ in zip file or folder names.

Your crafted code must work as submitted. Remember to test and double check your files before and after submitting them. If you make a mistake, you can resubmit up to the deadline but must resubmit all your files as Canvas hides prior submission files. For information on resubmitting see How do I change an assignment in Canvas?

Last Updated: March 02 2020 @22:11:56