Stella.java
package npw;

import painter.SPainter;
import shapes.SSquare;

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

public class Stella {

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

    public Stella() {
        paintTheImage();
    }

    private void paintTheImage() {

        int numberOfSquares = getNumber("Number of squares");

        SPainter painter = new SPainter("Stella", 800, 800);
        SSquare square = new SSquare(700);

        paintTheSquare(painter,square,numberOfSquares);
    }

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

    private void paintTheSquare(SPainter painter, SSquare square, int numberOfSquares) {
        int i = 1;
        Color color1 = randomColor();
        Color color2 = randomColor();
        double shrinkingSize = square.side()/numberOfSquares;
        while (i <= numberOfSquares) {
            if (even(i)) {
                painter.setColor(color1);
                painter.paint(square);
            } else {
                painter.setColor(color2);
                painter.paint(square);
            }
            i = i + 1;
            square.shrink(shrinkingSize);
        }
    }

    private boolean even(int i) {
        return (i % 2) == 0;
    }

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