"""
2018. október: Kerítés (Utca)
@author Klemand66
"""

from random import *


print("\n1. feladat\n")

betxt = open("kerites.txt")

keritesek, hszok = [], [0, -1]
for sor in betxt:    
    darsor=sor.strip().split()
    adatsor=[int(darsor[0]),int(darsor[1]),darsor[2]]
    # 0: oldal (páros=0, páratlan=1) 1: szélesség 2: szín (#=nincs befestve :=nem készült el)
    hszok[adatsor[0]]+=2
    adatsor.append(hszok[adatsor[0]]) # 3: házszám
    keritesek.append(adatsor)
    
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'Az eladott telkek száma: {len(keritesek)}')



print("\n3. feladat\n")

if keritesek[-1][0]==0:
    p="páros"
else:
    p="páratlan"
    
print(f'A {p} oldalon adták el az utolsó telket.')
print(f'Az utolsó telek házszáma: {keritesek[-1][3]}')



print("\n4. feladat\n")

paratlanok=list(filter(lambda k: k[3]%2==1 ,keritesek))

jok=list(filter(lambda i: paratlanok[i][2] not in "#:" \
                and paratlanok[i][2]==paratlanok[i+1][2] ,range(len(paratlanok)-1)))


print(f'Az első olyan házszám, ahol a szomszéddal azonos a kerítés színe: {paratlanok[jok[0]][3]}')



print("\n5. feladat\n")

parosak=list(filter(lambda k: k[3]%2==0 ,keritesek))
maxhsz=[2*len(parosak),2*len(paratlanok)-1]

akthsz=int(input(f'Adjon meg egy házszámot (1 <= házszám <= {maxhsz[0]}/{maxhsz[1]}): '))

hszker=list(filter(lambda k: k[3]==akthsz ,keritesek))
print(f'A kerítés színe/állapota: {hszker[0][2]}')

szinek = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
akthszok=[akthsz]
if akthsz-2>0:
    akthszok.append(akthsz-2)
if akthsz+2<maxhsz[akthsz%2]:
    akthszok.append(akthsz+2)

aktkeritesek=list(filter(lambda k: k[3] in akthszok ,keritesek))
tiltottszinek=list(map(lambda ak: ak[2] ,aktkeritesek))

jo=False
while not jo:
    velszin=choice(szinek)
    if velszin not in tiltottszinek:
        jo=True

print(f'Egy lehetséges festési szín: {velszin}')



print("\n6. feladat\n")

szinsor, hszsor = "", ""
for p in paratlanok:
    szinsor+=p[1]*p[2]
    hszsor+=str(p[3])+(p[1]-len(str(p[3])))*" "

kitxt = open("utcakep.txt","w")

kitxt.write(f'{szinsor}\n')
kitxt.write(f'{hszsor}\n')

kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
