import java.awt.*; public class boxThread extends Thread{ private int roll, place; private int xPos = 0; public final int Roll[][] = {{2, 1, 4, 2, 1, 2, 1, 5, 3, 1, 0, 4, 1, 5, 2, 1, 2, 0}, {3, 1, 3, 2, 0, 3, 0, 3, 0, 4, 3, 0, 3, 0, 1, 3, 0, 2}, {4, 5, 3, 1, 3, 5, 3, 1, 2, 3, 1, 5, 3, 1, 3, 2, 5, 3}}; public Color DkGreen = new Color(0, 128, 0); public Color Orange = new Color(255, 156, 0); public boxThread(int one, int two) {roll = one; place = 2;} public void paint (Graphics g){ paintIcon(g, 0);} public void paintIcon(Graphics g, int yPos) { switch (Roll[id][current]) { case 0: drawRainbow(g, xPos, yPos); break; case 1: drawCoins(g, xPos, yPos); break; case 2: drawClover(g, xPos, yPos); break; case 3: drawPot(g, xPos, yPos); break; case 4: drawBar(g, xPos, yPos); break; case 5: drawFish(g, xPos, yPos); break; default: break; } } public void drawBar(Graphics g, int x, int y){ x +=10; y +=40; g.setColor(DkGreen); g.fillRect(x, y, 100, 40); g.setColor(Color.yellow); x -=10; g.fillArc(x, y, 40, 20, 270, 180); y +=20; g.fillArc(x, y, 40, 20, 270, 180); x +=40; y +=20; Polygon p = new Polygon(); p.addPoint(x, y); x +=10; p.addPoint(x, y); x++; y -=4; p.addPoint(x, y); x +=8; p.addPoint(x, y); x++; y +=4; p.addPoint(x, y); x +=10; p.addPoint(x, y); x -=15; y -=40; p.addPoint(x, y); g.fillPolygon(p); g.fillArc(x, y, 40, 20, 270, 180); Polygon t = new Polygon(); x +=20; y +=20; t.addPoint(x, y); y +=20; t.addPoint(x, y); x +=20; t.addPoint(x, y); g.fillPolygon(t); } public void drawClover(Graphics g, int x, int y){ g.setColor(DkGreen); Polygon p = new Polygon(); x +=60; y +=60; p.addPoint(x, y); y +=45; x -=15; p.addPoint(x, y); y -=5; x -=10; p.addPoint(x, y); g.fillPolygon(p); g.setColor(Color.black); g.drawPolygon(p); g.setColor(DkGreen); x -=8; y -=87; g.fillOval(x, y, 40, 40); g.setColor(Color.black); g.drawOval(x, y, 40, 40); g.setColor(DkGreen); x +=40; y +=14; g.fillOval(x, y, 40, 40); g.setColor(Color.black); g.drawOval(x, y, 40, 40); g.setColor(DkGreen); y +=40; x -=14; g.fillOval(x, y, 40, 40); g.setColor(Color.black); g.drawOval(x, y, 40, 40); g.setColor(DkGreen); x -=40; y -=14; g.fillOval(x, y, 40, 40); g.setColor(Color.black); g.drawOval(x, y, 40, 40); g.setColor(DkGreen); x +=27; y -=13; g.fillRect(x, y, 40, 40); x +=27; int x2 = (x-14); int y2 = (y+40); g.setColor(Color.black); g.drawLine(x, y, x2, y2); y +=13; x -=27; x2 = (x+40); y2 = (y+14); g.drawLine(x, y, x2, y2); } public void drawFish(Graphics g, int x, int y){ x +=5; y +=35; int c = (int) (Math.random() * 6); g = setTheColor(g, c); g.fillArc(x, y, 100, 80, 20, 140); y -=30; g.fillArc(x, y, 100, 80, -20, -140); y +=30; g.setColor(Color.black); g.drawArc(x, y, 100, 80, 20, 140); y -=30; g.drawArc(x, y, 100, 80, -20, -140); y +=55; x +=90; Polygon p = new Polygon(); p.addPoint(x, y); x +=15; y +=25; p.addPoint(x, y); y -=50; p.addPoint(x, y); g.fillPolygon(p); x -=85; y +=10; g.fillOval(x, y, 5, 10); } public void drawPot(Graphics g, int x, int y){ Polygon p; p = new Polygon(); y += 35; x += 25; g.setColor(Color.black); g.fillOval(x, y, 70, 70); x += 35; y += 55; p.addPoint(x, y); y -= 60; x += 35; p.addPoint(x, y); x -= 70; p.addPoint(x, y); g.fillPolygon(p); y -= 8; g.setColor(Color.yellow); g.fillArc(x, y, 70, 16, 0, -180); g.fillOval(x, y, 20, 10); x += 15; g.fillArc(x, y, 35, 16, 0, 180); x += 30; g.fillOval(x, y, 25, 12); } public void drawCoins(Graphics g, int x, int y){ y += 45; x += 10; g.setColor(Color.black); g.fillOval(x, y,48,32); x -= 2; y -= 2; g.setColor(Color.yellow); g.fillOval(x, y, 48, 32); g.setColor(Color.black); g.drawOval(x, y, 48, 32); x += 42; y -= 3; g.fillOval(x, y,60,40); x -= 2; y -= 2; g.setColor(Color.yellow); g.fillOval(x, y,60,40); g.setColor(Color.black); g.drawOval(x, y, 60, 40); x -= 18; y -= 8; g.fillOval(x, y,36,24); x -= 2; y -= 2; g.setColor(Color.yellow); g.fillOval(x, y,36,24); g.setColor(Color.black); g.drawOval(x, y, 36, 24); } public void drawRainbow (Graphics g, int x, int y) { int c = (int) (Math.random() * 6); y += 30; int h = 120, w = 96; for (int i=0; i < 4; i++) { x += 10; g = setTheColor(g, c); g.fillArc(x, y, w, h, 0, 180); h -= 24; w -= 20; c++; if (c >= 6) c = 0; y += 12; } g.setColor(Color.white); x += 10; g.fillArc(x, y, w, h, 0, 180); } public Graphics setTheColor(Graphics g, int c) { switch(c) { case 0: g.setColor(Color.red); break; case 1: g.setColor(Orange); break; case 2: g.setColor(Color.yellow); break; case 3: g.setColor(Color.green); break; case 4: g.setColor(Color.blue); break; case 5: g.setColor(Color.magenta); break; default: g.setColor(Color.cyan); break; } return g; } }