/**
 * Klasse, die die Zahlen von null bis neun definiert und erzeugt
 * 
 * @author (Dennis Schweiger) 
 * @version (0.1)
 */
public class Punkteanzeige
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private Rechteck[][] rechteck;
    private Rechteck[][] rechteck2;
    private int rechterRand;
    private ZEICHENFENSTER zeichenblatt;
    private int[][][] ziffernliste;
    private int x;
    private int y;
    private int l;
    private int b;
    

    /**
     * Konstruktor für Objekte der Klasse Punkteanzeige
     * Zahlen von null bis neun werden definiert und ein Feld aus 4*5 Objekten der Klasse Rechteck erzeugt
     */
    public Punkteanzeige(int nummer, int delta_x, ZEICHENFENSTER zeichenblatt)
    {
        // Instanzvariable initialisieren
        int i;
        ziffernliste = new int[10][6][5];
        
        /**
         * Weil der Hintergrund schwarz ist, steht 0 für die Farbe weiß, ist also sichtbar, 
           und 1 für die Farbe schwarz, ist also nicht sichtbar.
         * Anzeigefeld["Ziffer","Zeile","Spalte"]
         */
        /** 
         * Definition der Ziffer Null
         */
        ziffernliste[0][1][1] = 1;
        ziffernliste[0][1][2] = 0;
        ziffernliste[0][1][3] = 0;
        ziffernliste[0][1][4] = 1;
        
        for(i = 2; i < 5; i++)
        {
            ziffernliste[0][i][1] = 0;
            ziffernliste[0][i][4] = 0;
        }
        
        for(i = 2; i < 5; i++)
        {
            ziffernliste[0][i][2] = 1;
            ziffernliste[0][i][3] = 1;
        }
        
        ziffernliste[0][5][1] = 1;
        ziffernliste[0][5][2] = 0;
        ziffernliste[0][5][3] = 0;
        ziffernliste[0][5][4] = 1;
        
        /**
        * Definition der Ziffer Eins
         */
        ziffernliste[1][1][2] = 0;
        
        for(i = 1; i < 6; i++)
        {
            ziffernliste[1][i][1] = 1;
            ziffernliste[1][i][4] = 1;
        }
        
        for(i = 2; i < 6; i++)
        {
            ziffernliste[1][i][2] = 1;
        }
        
        for(i = 1; i < 6; i++)
        {
            ziffernliste[1][i][3] = 0;
        }
        
        /**
        * Definition der Ziffer Zwei
         */
        ziffernliste[2][1][1] = 1;
        ziffernliste[2][1][2] = 0;
        ziffernliste[2][1][3] = 0;
        ziffernliste[2][1][4] = 1;
        
        ziffernliste[2][2][1] = 0;
        ziffernliste[2][2][2] = 1;
        ziffernliste[2][2][3] = 1;
        ziffernliste[2][2][4] = 0;
        
        ziffernliste[2][3][1] = 1;
        ziffernliste[2][3][2] = 1;
        ziffernliste[2][3][3] = 0;
        ziffernliste[2][3][4] = 1;
        
        ziffernliste[2][4][1] = 1;
        ziffernliste[2][4][2] = 0;
        ziffernliste[2][4][3] = 1;
        ziffernliste[2][4][4] = 1;
        
        for(i = 1; i < 5; i++)
        {
            ziffernliste[2][5][i] = 0;
        }
        
        /**
        * Definition der Ziffer Drei
         */
        ziffernliste[3][1][1] = 1;
        ziffernliste[3][1][2] = 0;
        ziffernliste[3][1][3] = 0;
        ziffernliste[3][1][4] = 1;
        
        ziffernliste[3][2][1] = 0;
        ziffernliste[3][2][2] = 1;
        ziffernliste[3][2][3] = 1;
        ziffernliste[3][2][4] = 0;
        
        ziffernliste[3][3][1] = 1;
        ziffernliste[3][3][2] = 1;
        ziffernliste[3][3][3] = 0;
        ziffernliste[3][3][4] = 1;
        
        ziffernliste[3][4][1] = 0;
        ziffernliste[3][4][2] = 1;
        ziffernliste[3][4][3] = 1;
        ziffernliste[3][4][4] = 0;
        
        ziffernliste[3][5][1] = 1;
        ziffernliste[3][5][2] = 0;
        ziffernliste[3][5][3] = 0;
        ziffernliste[3][5][4] = 1;
        
        /**
        * Definition der Ziffer Vier
         */
        for(i = 1; i < 5; i++)
        {
            ziffernliste[4][1][i] = 0;
        }
        ziffernliste[4][5][1] = 1;
        
        for(i = 1; i < 4; i++)
        {
            ziffernliste[4][i][2] = 1;
        }
        ziffernliste[4][4][2] = 0;
        ziffernliste[4][5][2] = 1;
 
        ziffernliste[4][1][3] = 1;
        ziffernliste[4][2][3] = 1;
        ziffernliste[4][3][3] = 0;
        ziffernliste[4][4][3] = 0;
        ziffernliste[4][5][3] = 0;
        
        for(i = 1; i < 4; i++)
        {
            ziffernliste[4][i][4] = 1;
        }
        
        ziffernliste[4][4][4] = 0;
        ziffernliste[4][5][4] = 1;
        
        /**
        * Definition der Ziffer Fünf
         */
         for(i = 1; i < 5; i++)
        {
            ziffernliste[5][1][i] = 0;
        }
        
        ziffernliste[5][2][1] = 0;
         for(i = 2; i < 5; i++)
        {
            ziffernliste[5][2][i] = 1;
        }
        
         for(i = 1; i < 4; i++)
        {
            ziffernliste[5][3][i] = 0;
        }
        ziffernliste[5][3][4] = 1;
        
         for(i = 1; i < 4; i++)
        {
            ziffernliste[5][4][i] = 1;
        }
        ziffernliste[5][4][4] = 0;
        
         for(i = 1; i < 4; i++)
        {
            ziffernliste[5][5][i] = 0;
        }
        ziffernliste[5][5][4] = 1;
        
         /**
        * Definition der Ziffer Sechs
         */
        ziffernliste[6][1][1] = 1;
         for(i = 2; i < 4; i++)
        {
            ziffernliste[6][1][i] = 0;
        }
        ziffernliste[6][1][4] = 1;
        
        ziffernliste[6][2][1] = 0;
         for(i = 2; i < 5; i++)
        {
            ziffernliste[6][2][i] = 1;
        }
        
         for(i = 1; i < 4; i++)
        {
            ziffernliste[6][3][i] = 0;
        }
        ziffernliste[6][3][4] = 1;
        
        ziffernliste[6][4][1] = 0;
        ziffernliste[6][4][2] = 1;
        ziffernliste[6][4][3] = 1;
        ziffernliste[6][4][4] = 0;
        
        ziffernliste[6][5][1] = 1;
        ziffernliste[6][5][2] = 0;
        ziffernliste[6][5][3] = 0;
        ziffernliste[6][5][4] = 1;
        
         /**
        * Definition der Ziffer Sieben
         */
         for(i = 1; i < 5; i++)
        {
            ziffernliste[7][1][i] = 0;
        }
        
         for(i = 1; i < 4; i++)
        {
            ziffernliste[7][2][i] = 1;
        }
        ziffernliste[7][2][4] = 0;
        
        ziffernliste[7][3][1] = 1;
        ziffernliste[7][3][2] = 1;
        ziffernliste[7][3][3] = 0;
        ziffernliste[7][3][4] = 1;
        
        ziffernliste[7][4][1] = 1;
        ziffernliste[7][4][2] = 0;
        ziffernliste[7][4][3] = 1;
        ziffernliste[7][4][4] = 1;
        
        ziffernliste[7][5][1] = 0;
         for(i = 2; i < 5; i++)
        {
            ziffernliste[7][5][i] = 1;
        }
        
        /**
        * Definition der Ziffer Acht
         */
        ziffernliste[8][1][1] = 1;
        ziffernliste[8][1][2] = 0;
        ziffernliste[8][1][3] = 0;
        ziffernliste[8][1][4] = 1;
        
        ziffernliste[8][2][1] = 0;
        ziffernliste[8][2][2] = 1;
        ziffernliste[8][2][3] = 1;
        ziffernliste[8][2][4] = 0;
        
        ziffernliste[8][3][1] = 1;
        ziffernliste[8][3][2] = 0;
        ziffernliste[8][3][3] = 0;
        ziffernliste[8][3][4] = 1;
       
        ziffernliste[8][4][1] = 0;
        ziffernliste[8][4][2] = 1;
        ziffernliste[8][4][3] = 1;
        ziffernliste[8][4][4] = 0;
        
        ziffernliste[8][5][1] = 1;
        ziffernliste[8][5][2] = 0;
        ziffernliste[8][5][3] = 0;
        ziffernliste[8][5][4] = 1;
        
        /**
        * Definition der Ziffer Neun
         */
        ziffernliste[9][1][1] = 1;
        ziffernliste[9][1][2] = 0;
        ziffernliste[9][1][3] = 0;
        ziffernliste[9][1][4] = 1;
        
        ziffernliste[9][2][1] = 0;
        ziffernliste[9][2][2] = 1;
        ziffernliste[9][2][3] = 1;
        ziffernliste[9][2][4] = 0;
        
        ziffernliste[9][3][1] = 1;
        for(i = 2; i < 5; i++)
        {
            ziffernliste[9][3][i] = 0;
        }
        
        for(i = 1; i < 4; i++)
        {
            ziffernliste[9][4][i] = 1;
        }
        ziffernliste[9][4][4] = 0;
        
        ziffernliste[9][5][1] = 1;
        for(i = 2; i < 4; i++)
        {
            ziffernliste[9][5][i] = 0;
        }
        ziffernliste[9][5][4] = 1;
        
        rechteck = new Rechteck[6][5];
        rechteck2 = new Rechteck[6][5];
        
        x = 525+delta_x;
        y = 60;
        l = 20;
        b = 20;
        
        rechteck[1][1] = new Rechteck(x, y, l, b, 1);
        rechteck[1][2] = new Rechteck(x+b, y, l, b, 1);
        rechteck[1][3] = new Rechteck(x+2*b, y, l, b, 1);
        rechteck[1][4] = new Rechteck(x+3*b, y, l, b, 1);
        
        rechteck[2][1] = new Rechteck(x, y+l, l, b, 1);
        rechteck[2][2] = new Rechteck(x+b, y+l, l, b, 1);
        rechteck[2][3] = new Rechteck(x+2*b, y+l, l, b, 1);
        rechteck[2][4] = new Rechteck(x+3*b, y+l, l, b, 1);
        
        rechteck[3][1] = new Rechteck(x, y+2*l, l, b, 1);
        rechteck[3][2] = new Rechteck(x+b, y+2*l, l, b, 1);
        rechteck[3][3] = new Rechteck(x+2*b, y+2*l, l, b, 1);
        rechteck[3][4] = new Rechteck(x+3*b, y+2*l, l, b, 1);
        
        rechteck[4][1] = new Rechteck(x, y+3*l, l, b, 1);
        rechteck[4][2] = new Rechteck(x+b, y+3*l, l, b, 1);
        rechteck[4][3] = new Rechteck(x+2*b, y+3*l, l, b, 1);
        rechteck[4][4] = new Rechteck(x+3*b, y+3*l, l, b, 1);
        
        rechteck[5][1] = new Rechteck(x, y+4*l, l, b, 1);
        rechteck[5][2] = new Rechteck(x+b, y+4*l, l, b, 1);
        rechteck[5][3] = new Rechteck(x+2*b, y+4*l, l, b, 1);
        rechteck[5][4] = new Rechteck(x+3*b, y+4*l, l, b, 1);
        
        Nummernanzeige(nummer, zeichenblatt);
    }

    /**
     * Methode, die die Rechtecke, aus denen die Nummernanzeige besteht, jeweils in der entsprechenden Farbe für jede Zahl
       (schwarz = nicht sichtbar oder weiß = sichtbar) zeichnet
     */
    public void Nummernanzeige(int nummer, ZEICHENFENSTER zeichenblatt)
    {
        int zeile;
        int spalte;
                    
        for(zeile = 1; zeile < 6; zeile++)
        {
            for(spalte = 1; spalte < 5; spalte++)
            {
                zeichenblatt.fuelleRechteck(rechteck[zeile][spalte].getxPos(), rechteck[zeile][spalte].getyPos(), 
                rechteck[zeile][spalte].getbreite(), rechteck[zeile][spalte].gethoehe(), 0);
                
                if (ziffernliste[nummer][zeile][spalte] == 0)
                {
                   zeichenblatt.fuelleRechteck(rechteck[zeile][spalte].getxPos(), rechteck[zeile][spalte].getyPos(), 
                   rechteck[zeile][spalte].getbreite(), rechteck[zeile][spalte].gethoehe(), 8);     
                }
            }
        }
    }
   }