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;
	}
}