H:\CSC120\Java\lec30\src\Mouse.java
  1 import java.awt.*;
  2 import java.util.Random;
  3 
  4 public class Mouse {
  5     
  6     public Integer over, down;
  7     public Boolean facingLeft;
  8     public Color mouseColor;
  9     
 10     public Mouse( Integer x, Integer y, Color c ) {
 11         over = x;
 12         down = y;
 13         facingLeft = false;
 14         mouseColor = c;
 15     } // end of constructor
 16     
 17     public Mouse( Integer x, Integer y ) {
 18         over = x;
 19         down = y;
 20         facingLeft = false;
 21         mouseColor = Color.LIGHT_GRAY;
 22     } // end of constructor
 23 
 24     public Mouse() {
 25         Random generator = new Random();
 26         over = generator.nextInt(601) + 100;
 27         down = generator.nextInt(501) + 50;
 28         facingLeft = generator.nextBoolean();
 29         Integer red, green, blue;
 30         red = generator.nextInt(150);
 31         green = generator.nextInt(150);
 32         blue = generator.nextInt(150);
 33         mouseColor = new Color(red, green, blue);
 34 //        Double pct;
 35 //        pct = generator.nextDouble();
 36 //        if (pct < 0.25) {
 37 //            mouseColor = Color.CYAN;
 38 //        }
 39 //        else if (pct < 0.5) {
 40 //            mouseColor = Color.GREEN;
 41 //        }
 42 //        else if (pct < 0.75) {
 43 //            mouseColor = Color.YELLOW;
 44 //        }
 45 //        else {
 46 //            mouseColor = Color.MAGENTA;
 47 //        }
 48     } // end of constructor
 49     
 50     public void moveForward( Integer steps ) {
 51         Integer direction = 1;
 52         if (facingLeft) {
 53             direction = -1;
 54         }
 55         over += direction*10*steps;
 56     } // end of moveForward
 57     
 58     public void turnAround() {
 59         facingLeft = !facingLeft;        
 60     } // end of turnAround
 61     
 62     public void draw(Graphics g){
 63         //g.setColor(Color.LIGHT_GRAY);
 64         g.setColor(mouseColor);
 65         g.fillOval(over, down, 50, 20);
 66         Polygon nose;
 67         nose = new Polygon();
 68         if (facingLeft) {
 69             nose.addPoint(over+18, down);
 70             nose.addPoint(over+18, down+20);
 71             nose.addPoint(over-10, down+10);
 72             g.fillPolygon(nose);
 73             g.setColor(Color.BLACK);
 74             g.setColor(Color.BLACK);
 75             g.fillOval(over+12, down+4, 5, 5);
 76             g.fillOval(over+12, down+11, 5, 5);
 77             g.drawLine(over-5, down+8, over, down-5);
 78             g.drawLine(over-5, down+8, over-3, down-5);
 79             g.drawLine(over-5, down+8, over-6, down-5);
 80             g.drawLine(over-5, down+12, over, down+25);
 81             g.drawLine(over-5, down+12, over-3, down+25);
 82             g.drawLine(over-5, down+12, over-6, down+25);
 83             g.drawArc(over+20, down-10, 60, 20, 270, 90  );
 84         } // end if
 85         else {
 86             nose.addPoint(over+32, down);
 87             nose.addPoint(over+32, down+20);
 88             nose.addPoint(over+60, down+10);
 89             g.fillPolygon(nose);
 90             g.setColor(Color.BLACK);
 91             g.fillOval(over+38, down+4, 5, 5);
 92             g.fillOval(over+38, down+11, 5, 5);
 93             g.drawLine(over+55, down+8, over+50, down-5);
 94             g.drawLine(over+55, down+8, over+53, down-5);
 95             g.drawLine(over+55, down+8, over+56, down-5);
 96             g.drawLine(over+55, down+12, over+50, down+25);
 97             g.drawLine(over+55, down+12, over+53, down+25);
 98             g.drawLine(over+55, down+12, over+56, down+25);
 99             g.drawArc(over-30, down-10, 60, 20, 180, 90  );
100         } // end else
101         
102     } // end of draw
103     
104 } // end of class Mouse
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 //    public Mouse() {
122 //        Random generator = new Random();
123 //        over = generator.nextInt(651) + 50;
124 //        down = generator.nextInt(501) + 50;
125 //        facingLeft = generator.nextBoolean();
126 //    } // end of constructor
127 //    
128