Supplemental Projects
     Chapter 1 
    Project S1.1 Modify Program P1.6 (StaircasePrinter) so that
    it accepts user input of an integer between 1 and 9 and prints that
    many stairs in the output. If you like, you may reverse the output
    so the stairs go down and right (instead of up and right).
    
     Chapter 2 
    Project S2.1 In lab 2 you wrote a program to create a text
    "cootie" drawing.  For this program, create a graphical
    cootie. You might want to begin with the FaceComponent and
    FaceViewer examples in Chapter 2.  Modify the code so it
    displays a figure with an insect body, head, legs, and so on. (Your
    artistic ability won't be graded).  The body, head, and eyes
    should have a fill color of your choice.
    View sample
      drawing.
    
     Chapter 3 
    Programming Exercise P3.11
    Programming Exercise P3.12
    
    Project S3.1 Complete Programming exercise P3.13 and modify
    it so that RoachSimulation interacts with the
    user to obtain the number of generations to simulate. 
    
    
     Chapter 4 
    Programming Exercise P4.13
    
    Project S4.1 Complete Programming Exercise P4.19 and add a
    tester class that uses a loop to print the Easter Sunday date for
    every year between 2012 and 2022.
    
    
     Chapter 5 
    Project S5.1 Complete Programming Exercise P5.18 and add a
    tester class that has enough tests to "cover" all the branches in
    the Line class (See 5.5).
    
     Chapter 6 
    Programming Exercise P6.8
    Programming Exercise P6.10
    
    Project S6.1 Write a Java implementation of the Magpie
      Fate game.  
    
    Chapter 7
    Programming Exercise P7.9
    Programming Exercise P7.12
    
    Project S7.1  Solve the BigInt
      problem. 
    
    Chapter 8
    Programming Project 8.2.  There's an error in the book in the
    table on pg 369.  The correct value for 4 is 01001, and 5 is
    01010.  Here is a more
      detailed explanation of this problem, with a recommended class
    design and helpful hints.  (You can ignore everything that
    follows "Generating Java Documentation".)
    
    Project S8.1.   Implement the Rational.java,
    RationalClient.java classes described in this
assignment.   (Don't do the extra credit).
    
    Project S8.2.   Write a program to play Find the Hurkle. 
    
    Chapter 9
    Programming Exercise P9.12
    
    Project S9.1. Study Worked Example 9.1. Obtain the source code for the Worked Example
    from the textbook web site. Compile and execute the SequenceDemo
    application and verify it works correctly. 
    Write a class PrimeSequence that implements the Sequence
    interface in the Worked Example. Starting with 2, each call to next()
    should produce the next prime number, in sequence. Rewrite the
    SequenceDemo application so that it demonstrates how your PrimeSequence
    class should be used to list the first fifty prime numbers. 
    Wtr 2015. Enhance the SequenceDemo application so that it
    displays the last digit distribution of the first fifty prime
    numbers. 
    
    Project S9.2.. Write a GUI-based program to generate a random
    password for the user. Model your program after the InvestmentViewer
    program in the textbook. The GUI should have a label, which shows
    the generated password, and an Add button, that appends a single
    random letter to the end of the password each time it is clicked.
    The password is initially empty. 
    
    Project S9.3.   Write a program to allow the user to play the Traffic Jam puzzle.  Specifications handout in class.
    Chapter 10
    Project S10.1. Study "How To 10.1" in the textbook on pages
    440 - 444. Download the source
      code for the solution . 
    Compile and run it to be sure it works as described in the text. 
    Enhance the application by providing more question types as
    described in Programming Exercises P10.3, P10.4, P10.5, P10.6, and
    P10.9. Be user to take advantage of inheritance and don't rewrite
    any fields or methods that already exist in the Question class. 
    
    Project S10.2. Implement the interactive, graphical Pong
      game. 
    
    Chapters 11 & 12
    Programming Exercise P12.8. Here is an example output.
    
    Programming Exercise P12.11.  The instructor has created the GUI
    that you must use:  ClockView.class
    Here is the javadoc:  ClockView.html
    Here is a sample driver: ClockDriver.java
    
    Project S11.1. JUnit4
      to JUnit3 conversion.
    
    
    Chapter 13
    Programming Projects 13.1 and 13.2 are NOT allowed. You must choose
    from the following problems. 
    
    Programming Exercise P13.9. Take advantage of the hint the author
    provides. Note this implies your solution is NOT 100% recursive; the
    word "enumerate" means use a for-loop. So your solution will have a
    for-loop inside the recursive part of the method. View sample output
    The instructor's recursive method is exactly five statements in
    length.
    
    
    Programming Exercise P13.14. Write a recursive solution. Read the
    maze data from a file in the format shown in the problem. Place a
    capital "O" for the starting location. The filename of the maze data
    should be read from the command line. View sample maze
      data.
    You should have at least two maze data files, one that CAN be
    escaped, and one that can not.
    Note there is no "extra credit" on this problem.
    
    
    Project S13.1. A palindromic number reads the same either
    forwards or backwards. For example, 353, 22, 191, and 72327 are
    palindromic. 25, 48, and 97 are not. The largest palindromic number
    made from the product of two 2-digit numbers is 9009 = 91 × 99. 
    Write a program that computes the largest palindromic number made
    from the product of two n-digit numbers. The value of n
    is provided on the command line (not via console input). 
    Output the two factors and the palindromic number that is their
    product. 
    You must use recursion in your program, though you may choose where
    and how it contributes to the solution. 
    
    Chapter 14
    Project S14.1  Inventory
        Report Program
    
    
    
    Chapter 15
    Programming Projects 15.1, 15.2, and 15.3 are NOT allowed. You must
    choose from the following problems.
    
    Project S15.1  Polynomial
      Problem (PDF)
    
    Project S15.2   Traffic Jam Game. 
    You must use a linked list to represent the game board.  
    
Under Construction: Treasure Collecting
    
    Chapter 18
    Project 18.1 Tips
You only have to do bar charts, not pie charts.
Here's what the screen should look like:
View screenshot
View solution demo video.  
To write this program consider starting with the FontViewerFrame in section 18.4 in the book
and modify it.
You may use the instructor's LabeledBar.java class from this demo:
LabeledBarDemo.zip.
(If you modify it, add your name in an @author tag and update
the @version tag.)
Updated LabeledBar.java (passes checkstyle).
    Project S18.1  
Java Swing card sorter game. 
     
Project S18.2
Create a Graphical User Interface for the Traffic jam problem.
The user clicks on the buttons to make a move.
A popup dialog alerts them when they have won the game.
The display should resemble this screenshot:
 
Here are the individual images for the buttons:
 
  
 
  
