AlternateBalloons.java
/* 
Program that paints 300 balloons in a blue sky. 
It will feature commands. 
 */

package npw;

import painter.SPainter;
import shapes.SCircle;
import shapes.SSquare;

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public class AlternateBalloons {

    // required Infrastructure

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

    //the painter doing its thing

    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 = 1 + i;
        }
    }

    private void paintOneBalloon(SPainter painter) {
        Random rgen = new Random();
        int rn = rgen.nextInt(6);
        if (rn == 0) {
            painter.setColor(new Color(250 ,6,30));
        }else if (rn == 1) {
            painter.setColor(new Color(65 ,176,20));
        }else if (rn == 2) {
            painter.setColor(new Color(205 ,176,20));
        }else if (rn == 3) {
            painter.setColor(new Color(90 ,16,120));
        }else if (rn == 4) {
            painter.setColor(new Color(5 ,100,170));
        }else {
            painter.setColor(new Color(255 ,100,180));
        }
        painter.move();
        int balloonRadius = 30;
        SCircle balloon = new SCircle(balloonRadius);
        painter.paint(balloon);
        painter.setColor(Color.BLACK);
        painter.draw(balloon);
    }
}