AlternateBalloons.java
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("Ballons",600,600);
        paintSky(painter); // ask InteliJ to generate the stub
        int nrOfBalloons = 300;
        paintBalloons(painter, nrOfBalloons);// ask IntelliJ to generate the stub
    }

    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){
            paintOneBalloons(painter);
            i = i + 1;
        }
    }

    private void paintOneBalloons(SPainter painter) {
        Random rgen = new Random();
        int rn = rgen.nextInt(5);
        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 = 209;
        int gv = 82;
        int bv = 82;
        return new Color(rv,gv,bv);
    }
    private static Color Color2() {
        int rv = 58;
        int gv = 21;
        int bv = 48;
        return new Color(rv,gv,bv);
    }
    private static Color Color3() {
        int rv = 0;
        int gv = 82;
        int bv = 0;
        return new Color(rv,gv,bv);
    }
    private static Color Color4() {
        int rv = 40;
        int gv = 242;
        int bv = 4;
        return new Color(rv,gv,bv);
    }
    private static Color Color5() {
        int rv = 100;
        int gv = 0;
        int bv = 250;
        return new Color(rv,gv,bv);
    }
    private static Color Color6() {
        int rv = 2;
        int gv = 54;
        int bv = 123;
        return new Color(rv,gv,bv);
    }
}