import turtle


def je_korektna_suradnica(suradnica):
    '''Overi, ci "suradnica" je platnou hodnotou suradnice policka model_obrazkau

    :param suradnica: suradnica policka model_obrazkau
    :type suradnica: Any
    :return: True, ak suradnica je korektna, inak False
    :rtype: bool
    '''
    if not isinstance(suradnica, int):
        return False
    if not 0 <= suradnica <= 9:
        return False
    return True


def vyfarbi_policko(stlpec, riadok, farba):
    '''Vyfarbi policko [riadok, stlpec] obrázka zadanou farbou

    :param stlpec: cislo stlpca
    :type stlpec: int
    :param riadok: cislo riadka
    :type riadok: int
    :param farba: meno farby
    :type farba: str
    :raises ValueError: ak niektora z hodnot nie je korektna
    '''
    if not je_korektna_suradnica(stlpec):
        raise ValueError(f'CHYBA - "{stlpec}" nie je platnou hodnotou pre stlpec, musi byt cele cislo z <0, 9>')

    if not je_korektna_suradnica(riadok):
        raise ValueError('CHYBA - riadok nie je cele cislo z <0, 9>')
    x = stlpec * 10
    y = riadok * 10
    pero.penup()
    pero.goto(x, y)
    try:
        pero.color('black', farba)
    except turtle.TurtleGraphicsError:
        raise ValueError(f'CHYBA - "{farba}": nie je platnou hodnotou pre farbu')
    pero.pendown()
    pero.begin_fill()
    pero.goto(x + 10, y)
    pero.goto(x + 10, y + 10)
    pero.goto(x, y + 10)
    pero.goto(x, y)
    pero.end_fill()


def kresli_mriezku():
    '''Vykresli prazdnu mriezku obrazka
    '''
    for x in range(0, 110, 10):
        pero.penup()
        pero.goto(x, 0)
        pero.pendown()
        pero.goto(x, 100)
    for y in range(0, 110, 10):
        pero.penup()
        pero.goto(0, y)
        pero.pendown()
        pero.goto(100, y)


def vytvor_symetriu():
    pass
    # doprogramuj tuto funkciu


pero = turtle.Turtle()
plocha = turtle.Screen()

navod = [['*', '*', 'yellow'],
         ['*', 3, 'green'],
         [2, '*', 'blue'],
         [9, 5, 'red']
         ]

kresli_mriezku()
vytvor_symetriu()
# doprogramuj kreslenie symetrickych obrázkov podla navodu

plocha.mainloop()
