| ..\CSC120\Java\lec32_f22\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     } 
 16     
 17     public Mouse( Integer x, Integer y ) {
 18         over = x;
 19         down = y;
 20         facingLeft = false;
 21         mouseColor = Color.LIGHT_GRAY;
 22     } 
 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 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48     } 
 49     
 50     public void moveForward( Integer steps ) {
 51         Integer direction = 1;
 52         if (facingLeft) {
 53             direction = -1;
 54         }
 55         over += direction*10*steps;
 56     } 
 57     
 58     public void turnAround() {
 59         facingLeft = !facingLeft;        
 60     } 
 61     
 62     public Integer getOver() {
 63         return over;
 64     }
 65     
 66     public Integer getDown() {
 67         return down;
 68     }
 69     
 70     public void draw(Graphics g){
 71         
 72         g.setColor(mouseColor);
 73         g.fillOval(over, down, 50, 20);
 74         Polygon nose;
 75         nose = new Polygon();
 76         if (facingLeft) {
 77             nose.addPoint(over+18, down);
 78             nose.addPoint(over+18, down+20);
 79             nose.addPoint(over-10, down+10);
 80             g.fillPolygon(nose);
 81             g.setColor(Color.BLACK);
 82             g.setColor(Color.BLACK);
 83             g.fillOval(over+12, down+4, 5, 5);
 84             g.fillOval(over+12, down+11, 5, 5);
 85             g.drawLine(over-5, down+8, over, down-5);
 86             g.drawLine(over-5, down+8, over-3, down-5);
 87             g.drawLine(over-5, down+8, over-6, down-5);
 88             g.drawLine(over-5, down+12, over, down+25);
 89             g.drawLine(over-5, down+12, over-3, down+25);
 90             g.drawLine(over-5, down+12, over-6, down+25);
 91             g.drawArc(over+20, down-10, 60, 20, 270, 90  );
 92         } 
 93         else {
 94             nose.addPoint(over+32, down);
 95             nose.addPoint(over+32, down+20);
 96             nose.addPoint(over+60, down+10);
 97             g.fillPolygon(nose);
 98             g.setColor(Color.BLACK);
 99             g.fillOval(over+38, down+4, 5, 5);
100             g.fillOval(over+38, down+11, 5, 5);
101             g.drawLine(over+55, down+8, over+50, down-5);
102             g.drawLine(over+55, down+8, over+53, down-5);
103             g.drawLine(over+55, down+8, over+56, down-5);
104             g.drawLine(over+55, down+12, over+50, down+25);
105             g.drawLine(over+55, down+12, over+53, down+25);
106             g.drawLine(over+55, down+12, over+56, down+25);
107             g.drawArc(over-30, down-10, 60, 20, 180, 90  );
108         } 
109         
110     } 
111     
112 } 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136 
137