repules = []
# 1. feladat - beolvasás
fbe = open('adatok.txt','r',encoding='utf-8')
for sor in fbe:
    repules.append(list(map(int,sor.strip().split(';'))))
fbe.close()
# ------------------------------------------------------------
# 2. és 3. feladat
print('2. feladat - fájlbaírás')

def egtaj(fok):
    if 315 <= fok:
        return 'É'
    elif 225 <= fok:
        return 'N'
    elif 135 <= fok:
        return 'D'
    elif 45 <= fok:
        return 'K'
    else:
        return 'É'
# szótár adattípus használata: kulcs az égtáj, érték a db    
# 'É': 1-ről indul, mert kezdetben arra néz a drón
compass = {'É':1,'K':0,'D':0,'N':0}

fki = open('irany.txt','w')
irany = repules[0][2]
print(f'{repules[0][0]}: {irany}, É',file = fki)
for i in range(1, len(repules)):
    irany = (irany+repules[i][2]) % 360
    et = egtaj(irany)
    print(f'{repules[i][0]}: {irany}, {et}', file=fki)
    compass[et] += 1    # szótár adott kulcsú elemének növelése
fki.close()

print('3. feladat')
for et, db in compass.items():  # szótár elemeinek ciklikus kiírása
    print(f'{et}: {db}')
mx_irany = max(compass, key = compass.get)  # maximális értékhez tartozó kulcs
print(f'Legtöbbször {mx_irany} irányába repült a drón!')
# ------------------------------------------------------------
# 4. feladat - maximális magasság
# maximális magasság kiválasztása, a "kis" listák második eleme a magasság
max_magassag = max(repules, key = lambda elem:elem[1]) 
print(f'A legnagyobb repülési magasság {max_magassag[1]} cm volt!')  
# ------------------------------------------------------------
# 5. feladat - lokális minimumok száma
db = 0
for i in range(1, len(repules)-1):   # i-1 és i+1 miatt ilyen a range
    # csak az olvashatóság kedvéért:
    elozo = repules[i-1][1]
    aktualis = repules[i][1]
    kovetkezo = repules[i+1][1]
    if elozo > aktualis < kovetkezo:
        db += 1
print(f'Süllyedések száma: {db}')

