import java.awt.Color;
import java.awt.Graphics;

class StereoLights
{
    private int x;
    private int y;
    private int height;
    private int width;
    private int nLights;
    private int prevLevel;
    private int ledHeight;
    private int ledWidth;
    private Color base;
    private Color normal;
    private Color extreme;
    private Color uNormal;
    private Color uExtreme;

    public void draw(Graphics g, int i)
    {
        if (i > nLights)
            i = nLights;
        if (prevLevel < i)
        {
            prevLevel++;
            if (prevLevel > nLights - 3)
                g.setColor(extreme);
            else
                g.setColor(normal);
            g.fill3DRect(x, y + height - prevLevel * ledHeight, ledWidth, ledHeight - 2, true);
            return;
        }
        if (prevLevel > i)
        {
            if (prevLevel > nLights - 3)
                g.setColor(uExtreme);
            else
                g.setColor(uNormal);
            g.fill3DRect(x, y + height - prevLevel * ledHeight, ledWidth, ledHeight - 2, true);
            prevLevel += -1;
        }
    }

    public void setPosition(int i, int j)
    {
        x = i;
        y = j;
    }

    public void setSize(int i, int j, int k)
    {
        height = j;
        width = i;
        nLights = k - 1;
        ledHeight = height / nLights;
        ledWidth = width - 2;
    }

    public StereoLights()
    {
        base = Color.white;
        normal = Color.green;
        extreme = Color.red;
        uNormal = normal.darker();
        uExtreme = extreme.darker();
        int i = 0;
        do
        {
            uNormal = uNormal.darker();
            uExtreme = uExtreme.darker();
        }
        while (++i < 3);
    }

    public void setColors(Color color1, Color color2, Color color3)
    {
        base = color1;
        normal = color2;
        extreme = color3;
        uNormal = normal.darker();
        uExtreme = extreme.darker();
        int i = 0;
        do
        {
            uNormal = uNormal.darker();
            uExtreme = uExtreme.darker();
        }
        while (++i < 3);
    }

    public void refresh(Graphics g)
    {
        prevLevel = 0;
        g.setColor(uNormal);
        for (int i = 1; i < nLights - 2; i++)
            g.fill3DRect(x, y + height - i * ledHeight, ledWidth, ledHeight - 2, true);
        g.setColor(uExtreme);
        for (int j = nLights - 2; j < nLights + 1; j++)
            g.fill3DRect(x, y + height - j * ledHeight, ledWidth, ledHeight - 2, true);
        g.setColor(base);
        g.fill3DRect(x, y + height, ledWidth, ledHeight - 2, true);
    }
}
