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