AlternateBalloons.java
1    /* 
2     * Program that paints 300 balloons, each of radius 30, of 6 different 
3     * “nameless” colors, will randomly populate the sky. 
4     * It will feature commands. 
5     */
6    package npw;
7    import java.awt.Color;
8    import java.util.Random;
9    import javax.swing.SwingUtilities;
10   import painter.SPainter;
11   import shapes.SCircle;
12   import shapes.SSquare;
13   public class AlternateBalloons {
14       // REQUIRED INFRASTRUCTURE
15       public AlternateBalloons() {
16           paintTheImage();
17       }
18   
19       public static void main(String[] args) {
20           SwingUtilities.invokeLater(new Runnable() {
21               public void run() {
22                   new AlternateBalloons();
23               }
24           });
25       }
26   
27       // THE PAINTER DOING ITS THING
28       private void paintTheImage() {
29           SPainter painter = new SPainter("Balloons", 600, 600);
30           paintSky(painter); // ask IntelliJ to generate the stub
31           int nrOfBalloons = 300;
32           paintAlternateBalloons(painter, nrOfBalloons); // ask IntelliJ to generate the stub
33       }
34   
35       private void paintSky(SPainter painter) {
36           painter.setColor(Color.BLUE);
37           SSquare sky = new SSquare(2000);
38           painter.paint(sky);
39       }
40   
41       private void paintAlternateBalloons(SPainter painter, int nrOfBalloons) {
42           int i = 1;
43           while (i <= nrOfBalloons) {
44               paintOneBalloon(painter); // ask IntelliJ to generate the stub
45               i = i + 1;
46           }
47       }
48   
49       private void paintOneBalloon(SPainter painter) {
50           Random rgen = new Random();
51           int rn = rgen.nextInt(6);
52           if (rn == 0) {
53               painter.setColor(Color.PINK);
54           } else if (rn == 1) {
55               painter.setColor(green());
56           } else if (rn == 2) {
57               painter.setColor(Color.GRAY);
58           } else if (rn == 3) {
59                   painter.setColor(orange());
60           } else if (rn == 4) {
61               painter.setColor(purple());
62           } else {
63               painter.setColor(yellow());
64           }
65           painter.move();
66           int balloonRadius = 30;
67           SCircle balloon = new SCircle(balloonRadius);
68           painter.paint(balloon);
69           painter.setColor(Color.BLACK);
70           painter.draw(balloon);
71       }
72       private static Color green() {
73           int rv = (int)(Math.random()*169);
74           int gv = (int)(Math.random()*235);
75           int bv = (int)(Math.random()*186);
76           return new Color(rv,gv,bv);
77       }
78       private static Color purple() {
79           int rv = (int)(Math.random()*211);
80           int gv = (int)(Math.random()*173);
81           int bv = (int)(Math.random()*255);
82           return new Color(rv,gv,bv);
83       }
84       private static Color orange() {
85           int rv = (int)(Math.random()*252);
86           int gv = (int)(Math.random()*201);
87           int bv = (int)(Math.random()*124);
88           return new Color(rv,gv,bv);
89       }
90       private static Color yellow() {
91           int rv = (int)(Math.random()*255);
92           int gv = (int)(Math.random()*252);
93           int bv = (int)(Math.random()*173);
94           return new Color(rv,gv,bv);
95       }
96   }
97