p1/03_zemljevid_ovir/naloga.py
Gašper Dobrovoljc 3a09b99dfa
03_zemljevid_ovir
2023-10-27 12:49:52 +02:00

82 lines
2.0 KiB
Python

def dolzina_ovir(vrstica):
count = 0
for char in vrstica:
if char == "#":
count += 1
return count
def stevilo_ovir(vrstica):
count = 0
ovira = False
for char in vrstica:
if char == "#":
if not ovira:
ovira = True
elif ovira:
count += 1
ovira = False
if ovira:
count += 1
return count
def najsirsa_ovira(vrstica):
sirina_max = 0
sirina = 0
for char in vrstica:
if char == "#":
sirina += 1
else:
if sirina > sirina_max:
sirina_max = sirina
sirina = 0
if sirina > sirina_max:
sirina_max = sirina
return sirina_max
def pretvori_vrstico(vrstica):
ovire = []
ovira = False
start = 0
for i, char in enumerate(vrstica):
if char == "#":
if not ovira:
start = i + 1
ovira = True
elif ovira:
ovire.append((start, i))
ovira = False
if ovira:
ovire.append((start, i + 1))
return ovire
def pretvori_zemljevid(vrstice):
ovire = []
for y, vrstica in enumerate(vrstice, start=1):
for ovira in pretvori_vrstico(vrstica):
ovire.append((*ovira, y))
return ovire
def izboljsave(prej, potem):
nove_ovire = []
star_zemljevid = pretvori_zemljevid(prej)
for ovira in pretvori_zemljevid(potem):
if ovira not in star_zemljevid:
nove_ovire.append(ovira)
return nove_ovire
def huligani(prej, potem):
dodane_ovire = []
odstranjene_ovire = []
star_zemljevid = pretvori_zemljevid(prej)
nov_zemljevid = pretvori_zemljevid(potem)
for ovira in star_zemljevid:
if ovira not in nov_zemljevid:
odstranjene_ovire.append(ovira)
for ovira in nov_zemljevid:
if ovira not in star_zemljevid:
dodane_ovire.append(ovira)
return dodane_ovire, odstranjene_ovire