def zisti_smer(od, do):
    '''Zistí absolútny smer z mriežkového bodu "od" do susedného mriežkového bodu "do".

    0 - východ, 90 - sever, 180 - západ, 270 - juh

    :param od: počiatočný bod
    :type od: list[int, int]
    :param do: koncový bod
    :type do: list[int, int]
    :return: absolútny smer
    :rtype: int
    '''
    if od[0] < do[0]:
        return 0
    if od[0] > do[0]:
        return 180
    if od[1] < do[1]:
        return 90
    return 270

def prepis_trasu(trasa):
    '''Pre trasu vyjadrený postupnosťou susedných meriežkových bodov nájde vyjadrenie trasy pomocou uhlov, o ktoré je potrebné sa v mriežkovývh bodoch otáčať.

    :param trasa: trasa vyjadrená ako zoznam mriežkových bodov
    :type trasa: list[list[int, int]]
    :return: trasa vyjadrená ako zoznam uhlov
    :rtype: list[int]
    '''
    aktualny_smer = 0
    uhlova_trasa = []
    for idx in range(len(trasa) - 1):
        smer = zisti_smer(trasa[idx], trasa[idx + 1])
        uhlova_trasa.append((smer - aktualny_smer) % 360)
        aktualny_smer = smer
    return uhlova_trasa

trasa = [[0, 0], [0, 1], [1, 1], [1, 2], [0, 2], [-1, 2]]
print(prepis_trasu(trasa))
