Stella.java
package npw;

import painter.SPainter;
import shapes.SSquare;
import javax.swing.*;
import java.awt.*;
import java.util.Random;
import java.util.Scanner;
import static javax.swing.SwingUtilities.*;

public class Stella {

    private Stella() {
        paintTheImage();
    }

    private void paintTheImage() {
        int numOfSquares = getNumber("How many Squares");
        int height = 800;
        int width = height;
        int side = height - 100;
        int factor = side / numOfSquares;

        SPainter painter = new SPainter("Stella", height, width);
        SSquare square = new SSquare(side);

        drawSquare(painter, numOfSquares, factor, square);
    }

    private void drawSquare(SPainter painter, int numOfSquares, int factor, SSquare square) {
        boolean switchColor = true;
        Color randomColor1 = randomColor();
        Color randomColor2 = randomColor();
        for (int i = 0; i < numOfSquares; i = i + 1) {

            if (switchColor == true) {
                painter.setColor(randomColor1);
                painter.paint(square);
                square.shrink(factor);
                switchColor = false;
            } else {
                painter.setColor(randomColor2);
                painter.paint(square);
                square.shrink(factor);
                switchColor = true;
            }
        }

    }

    private Color randomColor() {
        Random rgen = new Random();
        int r = rgen.nextInt(255);
        int g = rgen.nextInt(255);
        int b = rgen.nextInt(255);
        return new Color(r, g, b);

    }

    private int getNumber(String prompt) {
        String nss = JOptionPane.showInputDialog(null, prompt + "?");
        Scanner scanner = new Scanner(nss);
        return scanner.nextInt();
    }

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