Balloons.java
/* 
 * Program that paints 100 red, yellow and orange balloons in a blue sky. 
 * It will feature commands. 
 */

package npw;

import java.awt.Color;
import java.util.Random;
import javax.swing.SwingUtilities;
import painter.SPainter;
import shapes.SCircle;
import shapes.SSquare;

public class Balloons {

        // REQUIRED INFRASTRUCTURE

       public Balloons() {
           paintTheImage();
       }

       public static void main(String[] args) {
           SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                   new Balloons();
               }
           });
       }

       // THE PAINTER DOING ITS THING

       private void paintTheImage() {
           SPainter painter = new SPainter("Balloons", 600, 600);
           paintSky(painter);
           int nrOfBalloons = 100;
           paintBalloons(painter,nrOfBalloons);
       }

       private void paintSky(SPainter painter) {
           painter.setColor(Color.blue);
           SSquare sky = new SSquare(2000);
           painter.paint(sky);
       }

       private void paintBalloons(SPainter painter, int nrOfBalloons) {
           int i = 1;
           while (i<= nrOfBalloons) {
               paintOneBalloon(painter);
               i = i +1;
           }
       }

       private void paintOneBalloon(SPainter painter) {
           Random rgen = new Random();
           int rn = rgen.nextInt(3);
           if (rn==0) {
               painter.setColor(Color.red);
           } else if (rn==1) {
               painter.setColor(Color.orange);
           } else {
               painter.setColor(Color.yellow);
           }
           painter.move();
           int balloonRadius = 20;
           SCircle balloon = new SCircle(balloonRadius);
           painter.paint(balloon);
           painter.setColor(Color.black);
           painter.draw(balloon);

       }

}