AlternateBalloons.java
/* 
 * program that paints 300 balloons of six random colors 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 AlternateBalloons {

    public AlternateBalloons() {
        paintTheImage();
    }

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

    private void paintTheImage() {
        SPainter painter = new SPainter("Balloons", 600, 600);
        paintSky(painter);
        int nrOfBalloons = 300;
        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(6);
        if (rn==0) {
            painter.setColor(color1());
        } else if (rn==1) {
            painter.setColor(color2());
        } else if (rn==2) {
            painter.setColor(color3());
        } else if (rn==3) {
            painter.setColor(color4());
        } else if (rn==4) {
            painter.setColor(color5());
        } else {
            painter.setColor(color6());
        }
        painter.move();
        int balloonRadius = 30;
        SCircle balloon = new SCircle(balloonRadius);
        painter.paint(balloon);
        painter.setColor(Color.black);
        painter.draw(balloon);

    }

    private static Color color1() {
        int rv = 200;
        int gv = 15;
        int bv = 12;
        return new Color(rv,gv,bv);
    }

    private static Color color2() {
        int rv = 220;
        int gv = 110;
        int bv = 8;
        return new Color(rv,gv,bv);
    }

    private static Color color3() {
        int rv = 26;
        int gv = 190;
        int bv = 79;
        return new Color(rv,gv,bv);
    }

    private static Color color4() {
        int rv = 59;
        int gv = 49;
        int bv = 180;
        return new Color(rv,gv,bv);
    }

    private static Color color5() {
        int rv = 170;
        int gv = 150;
        int bv = 2;
        return new Color(rv,gv,bv);
    }

    private static Color color6() {
        int rv = 240;
        int gv = 89;
        int bv = 200;
        return new Color(rv,gv,bv);
    }

}