 /* *****************************************************************************
  *
  *  Description:  Object-oriented implementation of a 2-D bouncing ball.
  *
  **************************************************************************** */

 public class Ball {

     // declare instance variables
     _____________________________________________; // position
     _____________________________________________; // velocity
     _____________________________________________; // radius

     // other instance variables? color? sound? etc.

     // constructor
     public Ball() {
         // always start ball position at (0, 0)


         // initial velocity and size generated randomly
        

     }


     // draw the ball, but not the background
     public void draw() {


     }


     // bounce off vertical wall by reflecting x-velocity
     private void bounceOffVerticalWallIfNeeded() {

     }

     // bounce off horizontal wall by reflecting y-velocity
     private void bounceOffHorizontalWallIfNeeded() {

     }


     // move the ball one step, but don't draw it
     public void move() {
         // bounce off wall(s) if you are near the border


         // update position using unit change in time


     }

     // test client to create and animate just 2 balls.
     // this part is already complete.
     public static void main(String[] args) {
         // create and initialize two balls
         Ball b1 = new Ball();
         Ball b2 = new Ball();

         StdOut.println(b1.toString());
         StdOut.println(b1); // call to toString() implied!

         // initialize standard drawing
         StdDraw.setXscale(-1.0, +1.0);
         StdDraw.setYscale(-1.0, +1.0);
         StdDraw.enableDoubleBuffering();

         // main animation loop
         while (true) {
             StdDraw.clear(StdDraw.GRAY);
             StdDraw.setPenColor(StdDraw.BLACK);
             b1.move();
             b2.move();
             b1.draw();
             b2.draw();
             StdDraw.show();
             StdDraw.pause(20);
         }
     }
 }
