AlternateBalloons.java
1    package mathematics;
2    
3    import painter.SPainter;
4    import shapes.SCircle;
5    import shapes.SSquare;
6    import javax.swing.SwingUtilities;
7    import java.awt.Color;
8    import java.util.Random;
9    
10   public class AlternateBalloons {
11   
12       //requires infrastructure
13       public AlternateBalloons(){
14           paintTheImage();
15       }
16       public static void main(String[] args){
17           SwingUtilities.invokeLater(new Runnable() {
18               public void run() {
19                   new AlternateBalloons();
20               }
21           });
22       }
23   
24       //Painter doing its thing
25       private void paintTheImage() {
26           SPainter painter = new SPainter("Alternate Balloons", 600, 600);
27           paintSky(painter);
28           int nrOfballoons= 300;
29           paintBalloons(painter,nrOfballoons);
30       }
31       private void paintSky(SPainter painter) {
32           painter.setColor(Color.BLUE);
33           SSquare sky =  new SSquare(2000);
34           painter.paint(sky);
35       }
36   
37       private void paintBalloons(SPainter painter, int nrOfballoons) {
38           int i = 1;
39           while (i <= nrOfballoons) {
40               paintOneBalloon(painter);
41               i = i + 1;
42           }
43       }
44   
45       private void paintOneBalloon(SPainter painter) {
46           Random rgen =  new Random();
47           int rn = rgen.nextInt(6);
48           if (rn == 0){
49               painter.setColor(randomColor());
50           }else if (rn == 1){
51               painter.setColor(randomColor());
52           }
53           else if (rn == 2){
54               painter.setColor(randomColor());
55           }
56           else if (rn == 3){
57               painter.setColor(randomColor());
58           }
59           else if (rn == 4){
60               painter.setColor(randomColor());
61           }
62           else if (rn == 5){
63               painter.setColor(randomColor());
64           }
65           else {
66               painter.setColor(randomColor());
67           }
68           painter.move();
69           int balloonRadius = 30;
70           SCircle balloon = new SCircle(balloonRadius);
71           painter.paint(balloon);
72           painter.setColor(Color.BLACK);
73           painter.draw(balloon);
74       }
75       private Color randomColor(){
76           int rv = (int)(Math.random()*256);
77           int gv = (int)(Math.random()*256);
78           int bv = (int)(Math.random()*256);
79           return new Color(rv,gv,bv);
80       }
81   }
82   
83