import java.awt.*;

/**
 * Repräsentiert eine "sicher" eingetragene Zahl in einer Sudoku-Zelle
 * Kann eine Vorgabe sein oder eine durch Schlussfolgerungen gesetzte Zahl sein.
 * 
 * @author Rainer Helfrich
 * @version Dezember 2020
 */
public class BekannteZahl implements Eintrag
{
    /**
     * Der Wert der bekannten Zahl
     */
    private int wert;
    
    /**
     * Die Farbe, in der die Zahl gezeichnet werden soll (für Backtracking-Situationen)
     */
    private Color farbe;
    
    /**
     * Erzeugt eine neue bekannte Zahl
     * @param w Der Wert der Zahl
     */
    public BekannteZahl(int w)
    {
        wert = w;
        farbe = Color.BLACK;
    }
    
    /**
     * Markiert die Zahl, dies bedeutet, dass sie beim Backtracking "geraten" wurde
     */
    public void setMarkiert()
    {
        farbe = new Color(140, 70, 120);
    }
    
    /**
     * Zeichnet die Zahl auf ein Graphics-Objekt
     * Sollte nicht direkt aufgerufen werden.
     */
    public void zeichneDich(Graphics g, Rectangle r)
    {
        g.setColor(farbe);
        g.setFont(g.getFont().deriveFont(65.0f));
        SudokuPanel.drawCenteredString(g, ""+wert, r);
    }

    /**
     * Gibt den Zahlwert der bekannten Zahl zurück
     * @return Der Wert der Zahl
     */
    public int getZahl()
    {
        return wert;
    }
}
