AlternateBalloons.java
1    // Building code for balloons to populate a blue sky. The 300 balloons (with radius 30) must be six different colors.
2    // The different colors must be nameless, meaning you must use a color constructor
3    
4    package npw;
5    
6    import java.awt.Color;
7    import java.util.Random;
8    import javax.swing.SwingUtilities;
9    import painter.SPainter;
10   import shapes.SCircle;
11   import shapes.SSquare;
12   
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       private void paintTheImage() {
28           SPainter painter = new SPainter("Alternate Balloons", 600, 600);
29           paintSky(painter);      // line 56
30           int nrOfBalloons = 300;
31           paintBalloons(painter,nrOfBalloons);    // line 31
32       }
33   
34       private void paintBalloons(SPainter painter, int nrOfBalloons) {
35           int i = 1;
36           while (i <= nrOfBalloons) {
37               paintOneBalloon(painter);
38               i = i + 1;
39           }
40       }
41   
42       private void paintOneBalloon(SPainter painter) {
43           Random rgen = new Random();
44           int rn = rgen.nextInt(6);
45           if (rn==0) {
46               painter.setColor(lightBlue);
47           } else if (rn == 1) {
48               painter.setColor(lightPink);
49           } else if (rn==2) {
50               painter.setColor(lightGreen);
51           } else if (rn==3) {
52               painter.setColor(Salmon);
53           } else if (rn==4) {
54               painter.setColor(Burgundy);
55           } else if (rn==5) {
56               painter.setColor(lightOrange);
57           } else {
58               painter.setColor(Olive);
59           }
60           painter.move();
61           int balloonRadius = 30;
62           SCircle balloon = new SCircle(balloonRadius);
63           painter.paint(balloon);
64           painter.setColor(Color.black);
65           painter.draw(balloon);
66       }
67       Color lightBlue = new Color (147, 242, 249);
68       Color lightPink = new Color (241, 193, 245);
69       Color lightGreen = new Color (102, 249, 161);
70       Color Salmon = new Color (248, 128, 114);
71       Color Burgundy = new Color(102, 0, 0);
72       Color lightOrange = new Color (255, 178, 102);
73       Color Olive = new Color (51, 102, 0);
74   
75       private void paintSky(SPainter painter) {
76           painter.setColor(Color.blue);
77           SSquare sky = new SSquare(2000);
78           painter.paint(sky);
79       }
80   }
81   
82