| 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     } 
 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 void draw(Graphics g){
 63         
 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         } 
 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         } 
101         
102     } 
103     
104 } 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128