Invention2.java
1    /* 
2     * A program that uses a while and if statement to draw different image each time with a rectangle 
3     */
4    
5    package npw;
6    import java.awt.Color;
7    import java.util.Random;
8    import painter.SPainter;
9    import shapes.SRectangle;
10   
11   public class Invention2 {
12       public static void main(String[] args) {
13           int x = 300;
14           int y = 600;
15           Random rgen = new Random();
16           int height = rgen.nextInt(x);
17           int width = rgen.nextInt(y);
18           SRectangle rect = new SRectangle(height, width);
19           SPainter painter = new SPainter ("Invention 2", 800, 800);
20   
21           paintRectangles(painter, rect);
22       }
23   
24       private static void paintRectangles(SPainter painter, SRectangle rect){
25       int nrOfRectangles = 20;
26   
27       //Turning the painter
28           painter.tl();
29           painter.mrt(250);
30           painter.paint(rect);
31   
32       int i = 0;
33       while (i < nrOfRectangles) {
34           painter.paint(rect);
35           paintBoxes (painter, rect, nrOfRectangles, i);
36           i = i + 1;
37           }
38       }
39   
40       private static void paintBoxes (SPainter painter, SRectangle rect, int nrOfRectangles, int i){
41           if (i < nrOfRectangles){
42               painter.setColor(randomColor());
43               rect.shrink(randomNumber(), randomNumber());
44               painter.paint(rect);
45           } else {
46               painter.setColor(randomColor());
47               rect.shrink(randomNumber(), randomNumber());
48               painter.paint(rect);
49           }
50       }
51   
52       //Random color generator
53       private static Color randomColor() {
54           int r = (int) (Math.random() * 255);
55           int g = (int) (Math.random() * 255);
56           int b = (int) (Math.random() * 255);
57           return new Color(r, g, b);
58       }
59   
60       //Random number generator
61       private static double randomNumber() {
62           Random rgen = new Random();
63           int random = rgen.nextInt(50);
64           return random;
65       }
66   }
67